一尘不染

为什么DEBUG = False设置会使django静态文件访问失败?

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,图像等)都不会加载!发生了什么?关于静态文件和DEBUG设置,是否缺少某些内容?


阅读 461

收藏
2020-03-25

共2个答案

一尘不染

在关闭调试的情况下,Django将不再为您处理静态文件-生产Web服务器(Apache或其他服务器)应对此进行处理。

2020-03-25
一尘不染

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

manage.py runserver --insecure
2020-03-25