Как добавить пользовательскую страницу ошибок Symfony 3

Я пробовал, как говорит документация:

app/
└─ Resources/
   └─ TwigBundle/
      └─ views/
         └─ Exception/
            ├─ error404.html.twig
            ├─ error403.html.twig
            ├─ error.html.twig      # All other HTML errors (including 500)
            ├─ error404.json.twig
            ├─ error403.json.twig
            └─ error.json.twig      # All other JSON errors (including 500)

Но ни один из них не показывает настраиваемую страницу на prod env. Затем я попытался добавить в ту же папку Exception файл exception.html.twig, и он работал для всех ошибок (404, 500, ...), но он показывает это в dev, поэтому я не вижу ошибку при разработке, если у меня есть этот файл. И внутри производственной среды всегда отображается красный экран.

Как добавить пользовательскую страницу ошибок Symfony 3

Итак, как правильно создать пользовательскую страницу с ошибкой и как ее протестировать?

Symfony 3 не работает как Symfony 2

Braian Mellor 19.07.2018 16:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
2
856
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Страницы ошибок не используются в среде разработки. Во время разработки отображается другая страница с ошибкой с дополнительной отладочной информацией (которая может содержать информацию, которую вы не хотите публиковать). Строка заголовка Symfony по умолчанию не отображается в продакшене.

Чтобы увидеть, как страницы ошибок выглядят в производственной среде, попробуйте Предварительный просмотр страницы с ошибкой:

# app/config/routing_dev.yml
_errors:
    resource: "@TwigBundle/Resources/config/routing/errors.xml"
    prefix:   /_error

Если в вашей производственной среде отображается страница исключений Symfony, убедитесь, что для флага debug установлено значение false в app.php:

$kernel = new AppKernel('prod', false);

Спасибо, но это не ответ на вопрос. На моем производственном сервере отображается не обычная страница 404, а красная страница symfony. Может производственная среда не такая плохая, как производство?

Braian Mellor 19.07.2018 16:55

Я обновил свой вопрос. Если это не помогает, поделитесь информацией о config_prod.yml и (если вы что-то изменили) о своем app.php.

Stephan Vierkant 19.07.2018 17:00

Думаю, ответ на ваш вопрос касается очистки кеша.
используйте эту команду:
$ php bin / console cache: очистить --no-warmup --env = prod
и вы получите свои страницы ошибок,
Удачи.

Другие вопросы по теме