Django 1.11 404 页面,而 Debug=True
Posted
技术标签:
【中文标题】Django 1.11 404 页面,而 Debug=True【英文标题】:Django 1.11 404 Page while Debug=True 【发布时间】:2017-10-28 22:20:33 【问题描述】:不为难,我只想展示一个带有静态文件的特殊 404 渲染。
如果你设置DEBUG = False
你可以在urls.py
handler404 = 'app.views.handler404'
但它没有静态文件。我不想为简单的应用安装 Web 服务器。
DEBUG = True
在 网址
url(r'^404/$', views.handler400)
没有覆盖默认的找不到页面 (404) 页面。
实现渲染的简单方法是什么?当您在 DEBUG=True 时键入带有静态文件的 localhost/asdfhjfsda 时?
提前谢谢...
【问题讨论】:
【参考方案1】:我有一个完整的解决方案
我的开发环境: Windows 7、Python 3.5.2、Django 1.11、WAMP 3.0.6(Apache 2.4.23、mod_wsgi)
-
假设您有带有静态文件的 error_404.html 模板
创建下一个目录结构(“mysite” - Django 项目根文件夹)
-
mysite\mysite\settings.py
-
mysite\mysite\urls.py
-
mysite\mysite\views.py
-
“error_404.html”中的一些 Jinjo 逻辑(伪代码)
【讨论】:
我认为 OP 正在通过DEBUG = True
寻求解决方案【参考方案2】:
Django 1.9 发布这篇文章的最简单方法是在您的urls.py
:
from django.views.defaults import page_not_found
url(r'^404/$', page_not_found, 'exception': Exception())
它想要一个例外,给它一个例外:)
【讨论】:
【参考方案3】:在 django 1.10 docs:
在 Django 1.9 中更改: page_not_found() 的签名已更改。该函数现在接受第二个参数,即触发错误的异常。异常的有用表示也会在模板上下文中传递。
看看你的 'app.views.handler404'
定义,它可能会遗漏一个参数,也许这就是为什么 r'^404/$'
handler 没有为你提供正确的方法调用。
【讨论】:
以上是关于Django 1.11 404 页面,而 Debug=True的主要内容,如果未能解决你的问题,请参考以下文章