我想避免使用 django 和 nginx 时出现不一致的错误页面。如果找不到静态文件,则显示默认的 nginx 错误页面而不是 django 错误页面。我认为将每个失败的请求重定向到 gunicorn 服务器并最终显示 django 错误页面会导致性能不佳。我在哪里可以找到默认的 django 错误页面以及如何让 nginx 使用它们?
答案1
Django 可以使用多种方法来准备和生成 404 页面。据我所知,Django 甚至可以在 404 错误期间呈现一些模板。
如果您想要传递与 Django 发送给您的相同的页面,您可以:
将每个失败的请求发送给 gunicorn(这可能会影响你的性能)。
或者生成一个失败的页面,将其以静态形式存储在某处(例如
curl -o /var/www/errors/404.html http://your.site.com/404
),并使用提供适当的静态页面location /404.html { alias /var/www/errors/404.html } error_page 404 /404.html;
第一种方式可以让你提供自定义的错误页面(针对缺失的 URI)。虽然后一种方式会非常快速地提供错误页面,但所有缺失的页面和 URI 的错误页面都是相同的。
这个选择由你。