为什么DEBUG = False设置让我的django静态文件访问失败?

我正在使用Django构建一个应用程序作为我的主力。 到目前为止,所有这些都已经很好 - 指定的数据库设置,配置的静态目录,URL,视图等。但麻烦在我想呈现我自己的美丽和自定义404.html和500.html页面的时刻开始偷偷摸摸。

我阅读了关于自定义错误处理的文档,并在UrlsConf中设置了必要的配置,创建了相应的视图,并将404.html和500.html添加到我的应用的模板目录(在settings.py中指定)。

但文档说, you can actually view custom error views until Debug is Off ,所以我确实关闭它来测试我的东西,这是什么时候东西变得疯狂!

我不仅看不到自定义的404.html(实际上,它加载了,但是因为我的错误页面每个都包含一个图形错误消息 - 是一个很好的图像),错误页面的来源加载,但没有其他加载! 甚至没有链接CSS或Javascript!

一般来说,一旦我设置DEBUG = False ,所有的视图将加载,但任何链接的内容(CSS,Javascript,图像等)不会加载! 发生了什么? 有没有关于Static filesDebug setting


关闭调试关闭Django不会再为你处理静态文件 - 你的生产Web服务器(Apache或其他)应该照顾到这一点。


如果你仍然需要在本地服务器静态(例如,在没有调试的情况下进行测试),你可以在不安全的模式下运行devserver:

manage.py runserver --insecure

您可以使用WhiteNoise在生产中提供静态文件。

安装:

pip install WhiteNoise

并将您的wsgi.py文件更改为:

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise

application = get_wsgi_application()
application = DjangoWhiteNoise(application)

你很好走!

感谢Handlebar创意博客。

但是,真的不建议在生产中以这种方式提供静态文件。 你的生产网络服务器(如nginx)应该注意这一点。

链接地址: http://www.djcxy.com/p/38725.html

上一篇: Why does DEBUG=False setting make my django Static Files Access fail?

下一篇: Django: Get list of model fields?