Ресурсы, не найденные в продукте с использованием Webpack Encore с Symfony3.4

Я разработал веб-сайт на основе Symfony 3.4 и использовал Webpack Encore для управления активами. Когда я развернул последний выпуск, ресурсы CSS/JS не были найдены:

Ресурсы, не найденные в продукте с использованием Webpack Encore с Symfony3.4

Когда я проверил исходный код веб-страницы, я увидел, что URL-адреса указывают на старые версии ресурсов, например /build/app.db32012d.css, а файл manifest.json ссылается на новые версии ресурсов:

{
  "build/app.css": "/build/app.2aba4862.css"
}

Я использую развертыватель для развертывания новых выпусков. Процесс развертывания создает активы, работающие yarn encore prod.

Прежде всего, я попытался разогреть/очистить кеш Symfony, но все равно застрял.

Когда я просматриваю сайт в среде разработки (вызывая app_dev.php), проблема исчезает.

Я попытался перезапустить Apache, но все равно застрял.

Я изменил DocumentRoot VirtualHost с /var/www/current/web на /var/www/foo/web, и проблема исчезла до следующего выпуска.

Вот мой стек:

  • Апач 2.4
  • php7.3.6-fpm
  • OPCache включен
  • HTTP2 включен

Я ожидаю, что URL-адреса активов будут указывать на новые версии, как указано в файле manifest.json.

Я подозреваю, что где-то проблема с кешем, но я не могу найти где.

как вы развернули свой последний релиз? Вы бегали yarn encore production ?

Bernard Pagoaga 02.07.2019 15:36

О, я забыл объяснить эту часть: я развернул с помощью инструмента развертыватель. В процессе развертывания запускается yarn encore prod: php task('build:assets', function() { run('yarn install'); run('yarn encore prod'); run('bin/console ckeditor:install'); run('bin/console assets:install web'); })->local();

lobodol 02.07.2019 17:01

Кажется, я нашел решение: service php7.3-fpm restart. Имеет ли смысл?

lobodol 08.07.2019 10:37
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
547
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Думаю, я нашел ответ. Ресурсы с поддержкой версий загружаются в шаблоны Twig с помощью функций encore_entry_link_tags и encore_entry_script_tags (Официальный документ). Эти функции считывают из файла entrypoints.json, созданного Encore, чтобы узнать точные имена файлов для рендеринга. За тезисами это просто PHP. Поскольку я использую php-fpm, мне приходится перезапускать службу php-fpm при развертывании новых выпусков моих активов:

service php7.3-fpm restart

Вот и все!

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