我正在为我的应用程序使用500.html模板,这是404.html的相同副本,其中包含一些小的文本更改。
有趣的是,如果出现500.html(例如,当我强制发生内部服务器错误时)服务器将无法解析{{media_url}}上下文变量,从而导致页面没有加载任何css。
一种避免这种情况的简单方法是将链接硬编码到css,但我只是好奇为什么media_url没有得到解决。可能是因为服务器遇到内部服务器错误,导致上下文变量不再可用!?
答案 0 :(得分:11)
500错误处理程序未将RequestContext
传递给模板,它只使用Context
。如您所知,MEDIA_URL
已添加到上下文处理器中,仅在您使用RequestContext
时才会包含此内容。
如果需要,您可以设置自己的500处理程序并传递RequestContext。
这是关于制作自定义处理程序500的django docs的链接。
答案 1 :(得分:3)
django文档建议您不要为500.html文件使用模板,因为在呈现该模板时无法处理错误。
只需坚持使用直接的HTML文件,告知用户出现了错误。这就是他们需要知道的全部。
您可以查看服务器日志,了解您需要了解的内容。