Завершающая косая черта не добавляется, если DEBUG имеет значение False в Django 1.9


У меня есть приложение Django 1.9, когда DEBUG является true. Приложение перенаправляет на url-адрес с конечной косой чертой, если он не присутствовал. Но я получаю ошибку 404, когда DEBUG является False. Я попытался добавить настройку APPEND_SLASH = True, но ничего не изменилось. Моя настройка-nginx + gunicorn + Django 1.9.

Любое понимание ценится. Спасибо.

1 2

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 режим.