Django静态文件问题

2 投票
1 回答
8046 浏览
提问于 2025-04-16 10:12

重复问题: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}),
    )

撰写回答