在 Django 1.9 中 DEBUG 为 False 时不添加尾部斜线

Trailing slash is not added when DEBUG is False in Django 1.9

我有一个 Django 1.9 应用程序,当 DEBUGtrue 时。如果 url 不存在,应用程序将重定向到带有尾部斜杠的 url。但是当 DEBUGFalse 时我收到 404 错误。我尝试添加设置 APPEND_SLASH = True,但没有任何改变。我的设置是 nginx + gunicorn + Django 1.9。

欢迎任何见解。谢谢。

斜杠附加已移至 Django 1.9 中的响应处理程序,并且仅在 response.status_code 为 404 时应用:https://github.com/django/django/blob/1.9.3/django/middleware/common.py#L113

我遇到了同样的问题,在我的情况下,这是由我的自定义 404 视图引起的,该视图实际上返回了 HTTP 200。确保您的 404 视图使用 404 status_code.

创建响应

DEBUG = True 不会发生此行为的原因是在 DEBUG 模式下未使用自定义 404。