尝试通过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网络服务器能够从static/
文件夹提供,而是从node_modules/
文件夹提供服务。
如果我删除/重命名node_modules/
,那么我会获得404s静态文件。
静态文件是通过复制(而不是符号链接)收集的。
我使用Django频道也可能劫持一切?
答案 0 :(得分:1)
这就是staticfiles应用程序的作用:它包装内置的runserver命令直接从源目录提供静态文件,因此不需要在开发中运行collectstatic。
编辑您可以通过运行带有--nostatic
标记的runserver来禁用自动处理,并将static 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)
]