На моем локальном сервере запуска django я создал собственный templates/404.html
, и это работает без проблем. Однако в производстве с apache
этот обычай 404.html
больше не отображается (даже с DEBUG=False
).
Я просто получаю белую страницу с
Not Found
The requested URL /blahblah was not found on this server.
Я не верю, что это даже не значение по умолчанию для django, а, скорее, как-то связано с apache.
Как мне сказать apache разрешить django обрабатывать ошибки 404?
После всего этого я просто забыл установить необходимые разрешения для шаблона на рабочем сервере (я запускаю mod_wsgi
в режиме демона как 'djangoUser'), поэтому мне нужно
dr-x------ djangoUser djangoUser templates
dr------- djangoUser djangoUser templates/404.html
д'ох.
Вы должны включить обработчик error404 в вашем приложении Django (см. https://stackoverflow.com/questions/17662928/django-creating-a-custom-500-404-error-page) для получения дополнительной информации о том, как это сделать.