社区,
我正在使用Django 1.7。由于项目的特殊性,我对处理静态文件的需求很复杂。换句话说,我需要像往常一样在开发时提供/static/
,但/static/blueprints/
子目录应该由自定义视图提供。
无论如何,静态服务视图优先于urls.py
中的所有内容。以下内容不起作用:
urlpatterns = patterns('',
url(r'^static/blueprints/(?P<blueprint>[\w-]+)/(?P<path>.+)', 'my_view_name'),
...
)
访问适当的URL时,视图永远不会被触发。但是,将static/blueprints
更改为my_static/blueprints
会使此路径生效,因此视图确实有效。
当然,我只需要开发;在生产中,脚本将用于形成Nginx服务的必要目录结构。所以解决方案:
debug=True
。但是Django的调试器非常有用。django.contrib.staticfiles
。不太讨人喜欢,我想使用collectstaic
命令。/blueprints/
路径代替/static/blueprints/
,这是一种解决方案,但仅仅是针对美学。还有更优雅的解决方案吗?
答案 0 :(得分:1)
您在开发服务器上使用./manage.py runserver
,对吗?然后你就可以这样:./manage.py runserver --nostatic
和urls.py:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = patterns('',
url(r'^static/blueprints/(?P<blueprint>[\w-]+)/(?P<path>.+)', 'my_view_name'),
...
)
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()