6

我试过使用https://docs.djangoproject.com/en/dev/topics/http/views/教程,但我仍然得到标准的 404 html 页面。我想切换到我的自定义视图

handler404 = 'myview.views.custom_page_not_found' ,

我确实调试了它(使用 eclipse),然后将handler404(old value -'django.config.default.views.page_not_found)的值更改为我给出的新值('myview.views.custom_page_not_found')。但它仍然显示较旧的 404 页面。我已将 settings.py DEBUG 更改为 False,然后它显示自定义页面。但它有一些缺点(它不会加载静态文件,这DEBUG = false不是正确的方法)所以我不得不重置为 True。

我是否必须进行一些其他修改才能实现这一点?

4

2 回答 2

2

我认为您无法DEBUG = True毫无困难地在模式下更改 404 页面。

文档中有提示(https://docs.djangoproject.com/en/dev/topics/http/views/#the-404-page-not-found-view):

如果 DEBUG 设置为 True (在您的设置模块中),那么您的 404 视图将永远不会被使用,而是会显示您的 URLconf 以及一些调试信息。

于 2013-10-03T14:51:17.353 回答
0

尝试将其添加到主 urls.py 的底部:

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^404/$', TemplateResponse, {'template': '404.html'}))

将 404.html 替换为您使用的适当模板,但我相信 404.html 是默认的。然后使用 debug=True 你可以测试你的 404 页面。

如果您想使用 Debug=True 对其进行测试,那么您需要在主 urls.py 的底部使用它:

#Enable static for runserver with debug false
from django.conf import settings
if settings.DEBUG is False:   #if DEBUG is True it will be served automatically
    urlpatterns += patterns('',
            url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
    )

运行时DEBUG = False,不要忘记收集静态:

python manage.py collectstatic

希望这会有所帮助,干杯!

于 2014-11-12T19:47:30.727 回答