Apache 和 mod_wsgi 中的 Django 自定义错误处理程序

Django Custom Error Handlers in Apache and mod_wsgi

我在 Django 中设置了自定义 404 和 500 错误处理程序,它们在开发中工作,但对于 Apache,它们只显示默认的 Apache 内部服务器错误页面,即使是 404 错误。

这是我的 urls.py:

handler400 = 'views.error400'
handler403 = 'views.error403'
handler404 = 'views.error404'
handler500 = 'views.error500'

我读过很多在 apache 中设置自定义错误页面的方法,但是我在 django 上尝试过的所有方法都不起作用。 Apache/mod_wsgi 和 Django 的正确设置方法是什么?

我是否要从我的 urls.py 中删除这些行并向我的 apache.conf 添加一些行?

应该向 apache.conf 添加哪些行,因为我不确定如何从 apache 配置文件访问视图,而且 Django 的正常 urls.py 路由不适用于自定义错误页面因为我怀疑 Apache 正在拦截请求并提供它自己的页面。

我只想将我的模板用于我的自定义错误页面(包括从基本模板继承)。

我怎样才能做到这一点,我在任何地方都找不到合适的答案?

谢谢

编辑:

我尝试编辑 Apache 配置以添加 ErrorDocument 500 /templates/500.html 等,但没有成功。

目前我的模板目录中有错误页面,它们各自继承自一个基本模板。此外,他们每个人都有自己的观点来处理回复。

但无论我做什么,从 urls.py 中删除这些行,向 apache 配置添加内容等等。除了典型的内部服务器错误 apache 页面显示任何错误,我什么也得不到,甚至不是 500 个错误。

我该怎么做才能让它发挥作用?在 django 开发服务器上运行良好,但是一旦将 apache 投入其中,我就无法使用 apache 或 django 让它工作,我一定是遗漏了什么,但是什么?

您可以从 urls.py 中删除这些行。 Django 将查找您的模板以获取这些模板。

只需将 404.html500.html 文件放入 your_app/templates/ 目录。