2

我已经配置

handler404 = 'myapp.views.error404'

定义:

def error404(request):
        print "404 - Page"
        return render(request, request.LANGUAGE_CODE + "/404.html" , status=404 )

在 URL 调度程序中 - 工作正常。但是我在终端中看到每个请求的 404 - Page 消息,但是只有当我输入错误的 URL 时,我才会被重定向到 404.html。

这种行为的任何重要原因。

4

1 回答 1

0

对于那些不阅读评论的人(已给出部分回复):

404 错误可能由页面请求以外的其他事物触发:损坏的图像、favicon、css、js……例如,如果您请求/static/my_file.css.
如果您的 Web 服务器无法提供静态文件并将请求重定向到您的 Django 应用程序,它也会失败,并返回错误页面。

查看为什么调用句柄的一种方法是显示request.path当前请求的,以查看调用了哪个 URL:

def error404(request):
    print "404 - URL: ", request.path
    return render(request, request.LANGUAGE_CODE + "/404.html" , status=404)

当您部署项目并且静态文件存在一些问题时,这很常见:)

于 2013-12-31T16:12:29.920 回答