Колба, выдающая внутреннюю ошибку сервера вместо рендеринга 404 - PullRequest
7 голосов
/ 09 февраля 2012

В моем приложении Flask я настроил обработчик 404 следующим образом:

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

Однако, когда пользователь переходит на нераспознанный URL-адрес, система выдает внутреннюю ошибку сервера вместо рендеринга моего шаблона 404. Я что-то упустил?

Ответы [ 3 ]

7 голосов
/ 09 февраля 2012

Внутренняя ошибка сервера - это ошибка HTTP 500, а не 404, и вы не добавили обработчик ошибок для нее. Это происходит, когда сервер не может правильно выполнить запрос клиента. Чтобы добавить милостивое сообщение при возникновении такой ошибки, вы можете добавить errorhandler вроде 404.

@app.errorhandler(500)
def exception_handler(e):
    return render_template('500.html'), 500
0 голосов
/ 09 июля 2019

Вероятно, существует проблема при отображении шаблона 404, который затем вызывает внутреннюю ошибку сервера.

Я предлагаю проверить журналы для вашего приложения.

0 голосов
/ 29 мая 2016

Это также произойдет, если для отладки установлено значение true. Попробуйте установить для debug значение false и посмотрите, появится ли ваш пользовательский 404.

...