2012-04-12 8 views
1

Djangoでbase.cssをオーバーライドできない理由を理解しようとしています。 settings.pyDjangoのCSSをオーバーライドする静的ファイルディレクトリを追加する

私が持っている:

<link rel="stylesheet" href="{{ STATIC_URL }}pinax/css/base.css" /> 

そして私は/site_media/static/pinax/css/base.cssにあるファイルをカスタマイズした:

STATIC_URL = "/site_media/static/" 

そしてsite_base.htmlインチしかし、ここからファイルを読み込むのではなく、私のpython/site-packages/pinaxディレクトリから読み込んでいます。そして、同じsite_base.htmlファイルでは、/site_media_static/pinax/images/フォルダにある画像を上書きすることができますが、画像を上書きすることはできますが、CSSファイルは上書きできないようです。

私が間違っていることを知っていますか?

答えて

1

STATIC_URLは、静的ファイルが提供されているURLであり、格納されているディレクトリではありません。

静的ファイルを含むディレクトリをSTATICFILES_DIRSに追加するか、静的ファイルをアプリのstaticサブディレクトリに配置する必要があります。

Django staticfiles appのドキュメントを参照してください。

+1

私は 'collectstatic'を使っていて、なぜジャンゴー管理者のために私の過度のbase.cssを集めていないのだろうと思っていました。 [staticfiles app docs](https://docs.djangoproject.com/en/1.8/ref/contrib/staticfiles/#collectstatic)の状態: "指定された場所の1つで最初に見つかったファイルが使用されます"。そこで、 'INSTALLED_APPS'設定の' 'mysite ''を最初の位置に移動しました。 'python/site-packages/django/contrib/admin/css/base.css'の代わりに' mysite/static/admin/css/base.css'をコピーします。 – jenniwren

0

STATIC_ROOTSTATIC_URLによって参照される)は、手動で変更しないでください。collectstatic ann apps静的ディレクトリのコマンドとSTATICFILES_DIRSによって入力されています。 Djangoのdevサーバには、ソースから直接静的なファイルにアクセスできるヘルパーもあり、JSやCSSのデバッグを容易にします。

あなたの場合は、更新されたファイルをSTATICFILES_DIRSのどこかに入れてみてください。また、STATICFILES_FINDERSを見てください。静的ファイル検索プログラムの順序を変更して、どちらを優先するかを設定することができます。

関連する問題