6

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

知道是什么导致了这个问题(以及如何解决它)吗?

4

4 回答 4

12

我强烈建议让您的 Web 服务器处理静态请求,而无需使用 Django。在我的urls.py中,我只在调试设置为 True 时添加静态请求处理程序。

从技术上讲,提供静态服务的 Django 可以正常工作。一定要阅读简短的文档页面,http://docs.djangoproject.com/en/dev/howto/static-files/。你会想使用这样的条目urls.py

(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'})
于 2008-09-23T16:16:07.003 回答
6

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

一般来说,我会查看您的服务器日志,看看它试图从哪里获取文件。我怀疑 500 错误实际上是 404 错误,但它们变成了 500 错误,因为 Django 无法找到或呈现 404.html 模板。如果不是这种情况,那么如果您可以发布您遇到的特定 500 错误将会很有帮助。

于 2008-09-23T16:19:27.430 回答
0

您还必须到处检查您的网址。当 DEBUG 设置为 False 时,所有没有尾随“/”的 URL 都被视为错误,这与 DEBUG = True 不同,在这种情况下,Django 将在丢失的任何地方附加“/”。所以,简而言之,确保所有链接都以斜线结尾。

于 2013-06-18T08:26:53.317 回答
0

原来我已经注释掉了这个SECRET_KEY变量。不过我没有办法知道。只是不得不尝试一下。

于 2016-07-30T14:41:16.707 回答