我正准备部署我的Django应用程序,我注意到当我更改“DEBUG”时设置为False,所有对静态文件的引用(即JavaScript,CSS等)都会导致 HTTP 500 错误。

知道导致该问题的原因(以及如何解决)?

有帮助吗?

解决方案

我强烈建议您让Web服务器处理静态请求,而不要访问Django。在我的 urls.py 中,我只在debug设置为True时添加静态请求处理程序。

从技术上讲,服务于静态的Django可以正常工作。绝对阅读简短的文档页面, http://docs.djangoproject.com/en的/ dev / HOWTO /静态文件/ 。您需要在 urls.py

中使用这样的条目
(r'^static/(?P<path>.*), 'django.views.static.serve',
    {'document_root': '/path/to/media'})

其他提示

听起来您可能正在尝试使用Django开发服务器来提供静态媒体。请查看 http://docs.djangoproject.com/en/dev/howto/某些部署方案/ howtos的部署/ http:// docs .djangoproject.com / en / dev / howto / static-files / 如何提供静态文件(但请注意关于NOT在生产中使用这些方法的免责声明。)

一般情况下,我会查看您的服务器日志,并查看它从哪里获取文件。我怀疑500错误确实是404错误,但它们变成500错误,因为Django无法找到或呈现404.html模板。如果情况并非如此,那么如果你能发布你遇到的特定500错误会很有帮助。

您还必须检查遍布各处的网址。当DEBUG设置为False时,所有不带尾随“/”的URL。被视为一个bug,不像你有DEBUG = True,在这种情况下,Django将追加“/”它无处不在。因此,简而言之,确保所有链接都以斜线结束。

原来我已经注释掉了 SECRET_KEY 变量。虽然我无法知道。只需要尝试一下。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top