Завершающая косая черта не добавляется, если DEBUG имеет значение False в Django 1.9
У меня есть приложение Django 1.9, когда DEBUG
является true
. Приложение перенаправляет на url-адрес с конечной косой чертой, если он не присутствовал. Но я получаю ошибку 404, когда DEBUG
является False
. Я попытался добавить настройку APPEND_SLASH = True
, но ничего не изменилось. Моя настройка-nginx + gunicorn + Django 1.9.
Любое понимание ценится. Спасибо.
1 ответ:
Добавление косой черты было перенесено в обработчик ответа в 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
, заключается в том, что custom 404 не используется, когда вDEBUG
режим.