2016-11-16 4 views
0

は、Djangoの1.10のDjangoのrunserver間違った静的ファイルを提供する

と私は私のINSTALLED_APPSと、次の関連する設定で'django.contrib.staticfiles'を持っている:

STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.AppDirectoriesFinder", 
    "django.contrib.staticfiles.finders.FileSystemFinder", 
) 

STATICFILES_DIRS = [ 
    path('node_modules'), # resolves to `node_modules/` in the project root 
] 
STATIC_URL = '/static/' 
STATIC_ROOT = path('static') # resolves to `path/` in the project root 

この作品collectstaticのための細かい、NginXを介して直接細かいサービスを提供します。

runserver + DEBUG=Trueでは、Django Webサーバーがstatic/フォルダから配信されると期待していますが、代わりにnode_modules/フォルダから配信されています。

node_modules/を削除して名前を変更すると、静的ファイルに対して404が取得されます。

静的ファイルは、コピーによって収集されます(シンボリックリンクではありません)。

私はDjangoチャンネルを使用していますが、これもすべて乗っ取ることができますか?

答えて

1

これはstaticfilesアプリケーションの機能です。組み込みのrunserverコマンドをラップしてソースディレクトリから静的ファイルを直接提供するので、開発時にcollectstaticを実行する必要はありません。

編集あなたは--nostaticフラグ付きのrunserverを実行することによって自動処理を無効にし、手動でSTATIC_ROOTでstatic URLを指すことができます:

from django.conf import settings 
from django.conf.urls.static import static 

if settings.DEBUG: 
    urlpatterns += [ 
     static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
    ] 
+0

ビンゴ!ありがとう。あなたのURLパターン[。*)}は、リストを返すので、 $>]は無効です。 url()がurl()インスタンスのリストであることを確認してください。 – DanH

関連する問題