Django Http404和DEBUG模式的进退两难

4

我在开发过程中使用staticfiles应用程序,但除非打开DEBUG,否则无法正常工作。

来自文档

警告:仅当DEBUG为True时才起作用。

这是因为此视图非常低效且可能不安全。 这仅用于本地开发,并且不应在生产中使用。

此外,在使用staticfiles_urlpatterns时,您的STATIC_URL 设置不能为空或为完整URL,例如 http://static.example.com/

我正在尝试查看我的Http404模板,但当然它们不会在DEBUG模式下工作。所以我陷入了进退两难的境地-如果我想查看404页面,我必须关闭DEBUG,但那样就没有静态文件服务器,我看不到任何图片等。

2个回答

3

您可以简单地假装自己处于生产环境中。运行:

python manage.py collectstatic --noinput

将所有文件复制到STATIC_ROOT。然后,暂时将以下内容添加到urls.py:
urlpatterns += patterns('',
    (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
)

每次更改静态文件时,您都需要运行collectstatic命令,因此我建议您在类似于Firebug的工具中进行实时编辑,然后保存最终产品。另外,请记得在完成后删除static目录并从urls.py中删除该行。


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接