2016-06-14 7 views
1

私は約6ヶ月間うまく動作しているプロジェクトを持っています。静的ファイルは完全に動作しており、すべてが素晴らしいです。Djangoは静的な場所の設定を更新していません

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
    '/var/www/html/static/', 
    ) 

これがうまく働いている:私はそうのような静的セクションを設定している、私のsettings.pyファイルで

/var/www/html/static/

:私はとてもフォルダにある私のstaticファイルを持っています。

ただし、staticフォルダを別の場所に移動する必要があります。具体的には、プロジェクトのメインディレクトリの中に移動したいと思います。私のプロジェクトは/var/www/html/shq/にありますので、staticディレクトリは/var/www/html/shq/static/にあります。私は、このように見えるために私settings.pyファイルを更新し、フォルダを移動:

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
    '/var/www/html/shq/static/', 
    ) 

しかし、それは動作しませんでした。 Djangoプロジェクトはまだ古い場所を参照しています。

私はここで何が欠けていますか? Djangoプロジェクトが新しい場所/var/www/html/shq/static/を使用していないのはなぜですか?

EDIT

これは私のsettings.py、ファイルの末尾がどのように見えるかです:あなたはこのような何かをやってみてください

119 STATICFILES_FINDERS = [ 
120 'django.contrib.staticfiles.finders.FileSystemFinder', 
121 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
122 ] 
123 
124 STATIC_URL = '/static/' 
125 STATIC_ROOT = '/var/www/html/collected_static/' 
126 MEDIA_URL = '/media/' 
127 MEDIA_ROOT = '/var/www/html/shq/media/' 
128 STATICFILES_DIRS = [ 
129  os.path.join(BASE_DIR, "static"), 
130  '/var/www/html/shq/static/', 
131  ] 

答えて

0

。私は、djangoが静的ファイルを探すために探しているディレクトリのリストを返すと思います。デバッグに役立つかもしれません。

from django.contrib.staticfiles import finders 
from pprint import pprint 
pprint(finders.find("", all=True)) 

また、私は完全にあなたのシナリオを理解することはできませんが、あなたはSTATIC_ROOTはあなたが(あなたのウェブサーバがファイルを提供します)あなたの静的なファイルを提供する場所に設定されていることを確認することがあります。 STATIC_DIRS設定は、静的ファイルの場所をcollectstaticに指示しますが、STATIC_ROOTはcollectstaticが実際にファイルを置く場所です。

+0

'STATIC_ROOT'は別のディレクトリに設定されているので、静的ファイルは本番用に(また' DEBUG = False'のとき)保存されます。私はあなたが 'python'エディタに投稿したスクリプトを入力しましたが、(私は2つのfindersがリストされていますが)' STATICFILES_FINDERS'が設定されていないと文句を言います。どうしてこれはいつもイライラして挑戦しているのか分かりません。 - 編集 - さらに私の 'settings.py'ファイルをもっと表示するように投稿を更新しました – Garfonzo

0

私はそれを理解しました。驚くことではありませんが、それを理解した後は簡単に修正できました。

何もありません。私のDjangoの設定や、Apacheと関係があります。だから、どんなに私は私のジャンゴsettings.pyファイルに何をしたか

Alias /static/ /var/www/html/static/ 

オリジナル

は、Apacheはそれが間違ったディレクトリに要求された/static/を送信するためにオーバーライドされました。

新しいApacheの今、適切な静的なファイルが参照されている

Alias /static/ /var/www/html/shq/static/ 

を設定します。うまくいけば、これは将来他の誰かに助けてくれるでしょう:)

関連する問題