0

Django 1.10を使用して、開発用にrunserverを介して静的ファイルをサーバーにしようとしています

私は'django.contrib.staticfiles'自分INSTALLED_APPSと次の関連設定を持っています:

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チャネルを使用していますか?

4

1 に答える 1

2

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

編集--nostaticフラグを指定して runserver を実行することで自動処理を無効にし、静的 URLを手動で STATIC_ROOT に向けることができます。

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)
    ]
于 2016-11-16T21:21:24.950 に答える