113

Django を使用してアプリケーションを作成していますが、Django に CSS ファイルを使用させるにはどうすればよいでしょうか? Django に css ファイルを表示させるには、どのような設定を行う必要がありますか?

注意: ローカル マシン上

4

6 に答える 6

48

開発サーバーを使用している場合は、静的ファイルを管理してURLを設定するためのdjangoプロジェクトのハウツーガイドに従ってから、テンプレート内のメディアファイル(たとえば、からの画像フォルダー内の画像)を参照してください/site_media/images/foo.gif

于 2009-03-05T23:19:40.193 に答える
36

より一般的に言えば、Django から静的ファイルを提供する方法を尋ねています。Apache で実行している場合は、http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ をお読みください

開発サーバーを (ラップトップで) 実行している場合は、http://docs.djangoproject.com/en/dev/howto/static-files/を参照してください。

Django 開発サーバーに関する大きな免責事項に注意してください。

  • このサーバーの使用は非効率的で安全ではありません。
  • これを本番環境で使用しないでください。
  • これは開発目的でのみ使用してください。
于 2008-11-05T01:59:38.907 に答える
13

これは私にもしばらくの間問題を引き起こしました(404はエラーが見つかりませんでした)。私にとって欠けていたのはSTATICFILES_DIRS、settings.pyのタプルを編集して次のようにすることでした。

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)

次に、これにより、djangoプロジェクトのトップレベルにある「media」というフォルダーにあるCSSファイルが取得されました。

私も持っていた:

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'

/(上記の先頭にあることを確認してくださいSTATIC_URL

もちろん、上記のように、HTMLファイルからCSSファイルを適切に含める必要があります。私が持っていた:

<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />
于 2012-10-03T10:14:59.160 に答える
12

Django に css ファイルを表示させるには、どのような設定を行う必要がありますか?

なし。

テンプレートに (標準の HTML と同様に) CSS ファイルが含まれていることを確認し、CSS ファイルをメディア サーバーに配置します。

明確にするために: Django では、すべてのメディア (動的 html 以外のすべて) を別のサーバー インスタンスから提供することを強くお勧めします。それをどのように実装するかは完全にあなた次第ですが、ほとんどの人はサブドメインを作成します。

于 2008-11-04T08:32:35.883 に答える
8

公式の django ドキュメントは役に立ちませんでした。ブログ記事「Django: 静的ファイルを提供する方法」があなたの役に立てば幸いです。

于 2010-12-02T08:12:47.747 に答える
0

css を django で使用する最も簡単な方法は、css を静的ファイルとしてテンプレートに追加することです。

しかし、それは ajax に少し似ています。標準的な方法でそれを含める方法を示すものは何も見つかりませんでした。

サイズを最適化したい場合は、django 用のcss-compressorモジュールがあります。

于 2009-11-24T13:29:36.390 に答える