【发布时间】:2011-08-12 08:46:57
【问题描述】:
我通常在我的 Django 网站中添加一个包罗万象的 404 正则表达式,作为 urls.py 中的最后一个表达式:
urlpatterns += patterns('django.views.generic.simple',
(r'^.', 'direct_to_template', {'template': 'unknown.html'}),
我总体上对它的表现感到满意。 unknown.html 模板扩展了我的基本模板并很好地告诉查看者他们输入的 url 不存在,但页面仍然具有我网站的所有导航和样式。
但是,在不得不反复告诉人们输入一个尾部斜线之后,我觉得需要设置settings.py中的APPEND_SLASH = True参数。
文档状态:
如果 APPEND_SLASH 为 True 并且 初始 URL 不以斜杠结尾, 并且在 URLconf 中找不到, 然后通过附加形成一个新的URL 最后一个斜线。如果这个新 URL 是 在 URLconf 中找到,然后是 Django 将请求重定向到这个新的 URL。 否则,初始 URL 为 照常处理。
所以按照这个逻辑,foo.com/bar 被我的“404” url 表达式成功捕获,然后它可以被重定向到我的 foo.com/bar/ url 表达式。
* 什么是维护友好/自定义包罗万象的 404 页面同时还能够使用 APPEND_SLASH 或具有类似功能的东西的最佳方式?*
--编辑/回答--
不知何故我错过了你只需要添加一个名为 404.html 的模板,并确保 DEBUG = False
感谢 DTing!
【问题讨论】:
标签: django http-status-code-404 django-urls