我开始使用应用程序'django.contrib.staticfiles'将静态文件收集到我项目的/ static /目录中。
问题是,当我使用django开发服务器(manage.py runserver)时,它会自动提供静态文件。
通常很好,但在我的情况下,我想自己提供这些静态文件。
我想在urls.py文件中输入类似的内容:
urlpatterns += patterns('',
url('^static/(?P<path>.*)$', myStaticMediaServe,{'document_root': settings.STATIC_ROOT ,'show_indexes': True}),
)
问题是'django.contrib.staticfiles'应用程序在settings.DEBUG = True时优先使用'/ static /'url:我找不到让Django使用我的'/ static /'urlpattern描述的方法处于调试模式时
如果我从settings.py中删除'django.contrib.staticfiles':我的'/ static /'urlpattern可以正常工作,但我收集了静态文件。
你有想法使用'django.contrib.staticfiles'并通过urlpattern描述使用我自己的静态文件服务器并且有settins.DEBUG = True
答案 0 :(得分:5)
我发现,默认情况下,django'rowserver'本身,preempts / static / urls:即使使用自定义中间件,也不能强制django将'/ static /'指向你的代码。
我找到的唯一解决方案:对'./manage.py runserver'使用--nostatic选项,然后可以使用自己的url模式和视图来提供静态文件。
答案 1 :(得分:0)
将DEBUG
设为False
。 Django仅在True
时提供静态文件。