Django runserver设置DEBUG为真,提供错误的静态文件



尝试通过runserver为开发提供静态文件,使用Django 1.10

我有'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 webserver从static/文件夹服务,但它是从node_modules/文件夹服务。

如果我删除/重命名node_modules/,然后我得到404静态文件。

静态文件是通过copy(而不是symlink)收集的。

我正在使用Django通道,这可能会劫持一切?

这就是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)
    ]

相关内容

  • 没有找到相关文章

最新更新