2016-07-17 14 views
0

私はsaticファイルにCDNを使用してSTATIC_ROOTを設定するチュートリアルに従っていましたが、私は静的ファイルを同じサーバー私のdjangoアプリが提供されます。私は以下の新しい設定に変更しようとしたが、私はmanage.py collectstaticを実行して、静的ファイルがロードされていない。私は間違って何をしていますか?作業djangoのSTATIC_ROOTとSTATICFILES_DIRSを変更した後にスタティックファイルがロードされない

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 
MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 

古い設定:

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn") 
STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "static"), 
    ] 
MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_cdn") 

答えて

1

あなたの静的ファイルを維持しているこれはジャンゴ/ wが動作していない1.9

新しい設定ですか?

2番目の設定ファイルにあるとおり、BASE_DIR/static then it is important to include the same STATICFILES_DIRS`に保存してください。

あなたの静的なファイルがあなたのさまざまなアプリに広がっている場合は、STATICFILES_FINDERSdjango.contrib.staticfiles.finders.AppDirectoriesFinderが追加されていることを確認してください。

collectstaticのポイントは、すべてのさまざまなアプリ(管理者、投票など)から静的ファイルを取得して静的ルートに移動して配信することです。また、STATIC_ROOTbeing servedであることを確認する必要があります。

STATIC_ROOTがBASE_DIRのどこかを指しているのは良い考えではありません。通常、これはWebサーバーによって静的に提供されません。

+0

私の静的ファイルはBASE_DIR/staticにあります。 STATICFILES_DIRS設定を追加してSTATIC_ROOT = ''を設定すると、django.core.exceptions.ImproperlyConfiguredが表示されます。STATIC_ROOT設定をファイルシステムパスに設定せずにstaticfilesアプリケーションを使用しています。 – bayman

+0

これはテストサーバーで実行していると思いますか?それとも開発中ですか? STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR)、 "static_root")を設定し、STATICFILES_DIRS設定を維持してください。 'manage.py runserver'を実行している場合は、' collectstatic'を実行する必要はありません。 – fizzyh2o

+0

これはmanage.py runserverを使って現在テストしています。上記のSTATIC_ROOT設定を追加すると、BASE_DIRの外にフォルダが追加されます。だから、私がproductionでcollectstaticを実行すると、BASE_DIR/staticから../static_rootにすべての静的ファイルをコピーして、そのstatic_rootフォルダをApacheまたはnginxに指定する必要がありますか? – bayman

関連する問題