如果我使用 get_object_or_404()
,Django 会显示正确的错误页面,但 NGINX 仍然返回:
HTTP/1.1 200 OK
Server: nginx
tl;tr
每个页面都会返回 200 或(如果是 500)超时。这里出了什么问题?
NGINX 配置:
location / {
proxy_pass http://unix:/opt/repo/page.sock;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
}
url.py
from django.conf import settings
handler404 = 'my_app.views.page_not_found'
最佳答案
您应该设置处理程序,可以通过以下方式完成:
from django.utils.functional import curry
handler404 = curry(page_not_found, template_name='404.html')
handler500 = curry(page_not_found, template_name='500.html')
handler403 = curry(page_not_found, template_name='403.html')
我已经在 urls.py 中完成了此操作,但也可以在 s 中完成
关于python - 带有gunicorn和nginx的Django不会返回404或500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38405430/