django media url未在500内部服务器错误模板中解析

时间:2010-04-05 17:18:53

标签: django

我正在为我的应用程序使用500.html模板,这是404.html的相同副本,其中包含一些小的文本更改。

有趣的是,如果出现500.html(例如,当我强制发生内部服务器错误时)服务器将无法解析{{media_url}}上下文变量,从而导致页面没有加载任何css。

一种避免这种情况的简单方法是将链接硬编码到css,但我只是好奇为什么media_url没有得到解决。可能是因为服务器遇到内部服务器错误,导致上下文变量不再可用!?

2 个答案:

答案 0 :(得分:11)

500错误处理程序未将RequestContext传递给模板,它只使用Context。如您所知,MEDIA_URL已添加到上下文处理器中,仅在您使用RequestContext时才会包含此内容。

如果需要,您可以设置自己的500处理程序并传递RequestContext。

这是关于制作自定义处理程序500的django docs的链接。

答案 1 :(得分:3)

django文档建议您不要为500.html文件使用模板,因为在呈现该模板时无法处理错误。

只需坚持使用直接的HTML文件,告知用户出现了错误。这就是他们需要知道的全部。

您可以查看服务器日志,了解您需要了解的内容。

相关问题