Django静态文件问题
重复问题:Django静态文件应用帮助
我正在使用Django 1.3 beta版本,静态文件的设置让我感到困惑。在开发模式下,它应该自动从STATIC_URL
路径提供文件。
来自http://docs.djangoproject.com/en/dev/howto/static-files/
如果你使用内置的开发服务器(通过运行管理命令runserver),并且将DEBUG设置为True,那么在开发过程中,你的静态文件会自动从STATIC_URL提供。
但这似乎没有生效,所以我尝试了一个网址模式('/static/'),它指向静态文件的serve视图。结果却是404错误。似乎这和STATIC_URL有冲突,如果我把它改成'assets/',静态文件就能正常提供。用'/static'作为静态网址是合乎逻辑的,但这却产生了冲突。
网址模式:
urlpatterns = patterns('',
# Serve static files for *development only*
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}),
静态文件设置:
STATIC_ROOT = '/home/dave/static/flux'
# URL that handles the static files served from STATIC_ROOT.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'
理想情况下,我希望Django在开发时使用静态网址提供文件,而不需要使用任何网址模式。
1 个回答
5
如果你想在使用Django自带的服务器时提供静态文件,你需要添加一个网址模式。下面是我通常做的(把这个添加到你其他所有模式之后):
if settings.DEBUG:
urlpatterns += patterns('',
(r'^static/(.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_PATH}),
)