如何覆盖django静态文件开发服务器?

Eri*_*ric 6 django

我开始使用应用程序'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}),
        )
Run Code Online (Sandbox Code Playgroud)

问题是'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

Eri*_*ric 5

我发现,默认情况下,django'rowserver'本身,preempts/static/urls:即使使用自定义中间件,你也不能强迫django指向你的代码'/ static /'.

我找到的唯一解决方案:对'./manage.py runserver'使用--nostatic选项,然后可以使用自己的url模式和视图来提供静态文件.


Chr*_*att 0

设置。DEBUGFalseDjango 仅在True.