我已配置
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。
此行为的任何重大原因。
答案 0 :(得分: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)
当您部署项目并且静态文件存在问题时,这种情况很常见:)