Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Отображение в режиме production для Symfony 3

Здравствуйте!
Делаю тест на Symfony 3 (до этого работал с Laravel).
Никак не могу понять, как настроить отображение контента в prod-окружении. Маршруты через app_dev.php отображаются нормально, а без него возвращается 500 ошибка.
Подскажите, пожалуйста, где копать? Информации по этому вопросу на официальном сайте пока найти не удалось, а сроки поджимают.
В логе следующее:
[2016-04-18 09:13:08] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /address"" at D:\webdev\symfony\site.lc\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\EventListener\RouterListener.php line 123 {"exception":"[object] (Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException(code: 0): No route found for \"GET /address\" at D:\\webdev\\symfony\\site.lc\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\HttpKernel\\EventListener\\RouterListener.php:123, Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException(code: 0): at D:\\webdev\\symfony\\site.lc\\var\\cache\\prod\\appProdUrlMatcher.php:46)"} []


Ответ

Итак, всё дело в кэше.
Поскольку prod среда оптимизирована для скоростной работы, то конфигурация, маршрутизация и Twig-шаблоны компилируются в голые PHP-классы и кэшируются. Если вы изменили что-либо в dev среде и хотите посмотреть как это выглядит в prod среде, то вам нужно очистить кэш этой среды (prod); если этого не сделать, то вы увидите то, что откомпилировалось и закэшировалось ранее.
Очистить кэш в Symfony можно с помощью консоли:
php bin/console cache:clear
Команда выше очистит кэш dev среды, так как по умолчанию консольные команды выполняются в ней (dev среде)
Чтобы очистить кэш для prod или другой среды, нужно добавить соответствующую опцию:
php bin/console cache:clear --env=prod
Альтернативный вариант:
php bin/console cache:clear -e prod
Источники:
The Symfony Book → Configuring Symfony (and Environments) → #Environments The Symfony Cookbook → Recipes about Console → How to Use the Console

Комментариев нет:

Отправить комментарий