当Debug设置为False时,为什么Django会为静态媒体生成HTTP 500错误?

当Debug设置为False时,为什么Django会为静态媒体生成HTTP 500错误?,django,deployment,debugging,Django,Deployment,Debugging,我正准备部署我的Django应用程序,我注意到当我将“DEBUG”设置更改为False时,所有对静态文件(即JavaScript、CSS等)的引用都会导致HTTP500错误 知道是什么导致了这个问题(以及如何解决它)吗?我强烈建议让您的web服务器处理静态请求,而不必访问Django。在我的urls.py中,我只在debug设置为True时添加静态请求处理程序 从技术上讲,Django服务于静态工作,但效果很好。一定要阅读简短的文档页面。您需要在url.py中使用这样的条目 (r'^static

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


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

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

从技术上讲,Django服务于静态工作,但效果很好。一定要阅读简短的文档页面。您需要在
url.py中使用这样的条目

(r'^static/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': '/path/to/media'})
(r'^static/(?P.*)$,'django.views.static.service',
{'document_root':'/path/to/media'})

听起来您可能正试图使用Django开发服务器为您的静态媒体提供服务。查看一些部署场景/方法以及如何为静态文件提供服务(但请注意关于在生产中不使用这些方法的免责声明)


通常,我会查看您的服务器日志,并查看它试图从何处获取文件。我怀疑这500个错误实际上是404个错误,但它们变成了500个错误,因为Django无法找到或呈现404.html模板。如果不是这样的话,如果你能发布你收到的具体的500个错误,那将非常有帮助。

你还必须到处检查你的URL。当DEBUG设置为False时,所有不带尾随“/”的URL都将被视为错误,这与DEBUG=True时不同,在这种情况下,Django将在缺少“/”的任何地方追加“/”。因此,简而言之,确保所有链接都以斜杠结尾。

结果是我注释掉了
SECRET\u KEY
变量。但是我没办法知道。只是想尝试一下。

Ha。如果我查看自己的URL.py,可能会有所帮助。我把所有的设置都连接好了。呃……这是一个漫长的发展周期。:)