问题:Django 1.9 中 DEBUG 为 False 时不添加斜杠

我有一个 Django 1.9 应用程序,当DEBUGtrue时。如果不存在,应用程序将重定向到带有斜杠的 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 状态_code 的响应。

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

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐