Почему статические файлы не создаются и не кэшируются в режиме по умолчанию или в рабочем режиме в Magento 2?


Как указано в этой ссылке: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-static-view.html

На развертывание файлов статического представления режимы Magento влияют следующим образом:

Режим разработчика: Magento генерирует их по требованию, но остальные кэшируются в файле для ускорения доступа.

Режимы по умолчанию и производства: Статические файлы не создаются и не кэшируются.

Вы должны записать файлы статического представления в файловую систему Magento вручную с помощью команды, описанной в этом разделе; после этого вы можете ограничить разрешения, чтобы ограничить свои уязвимости и предотвратить случайную или вредоносную перезапись файлов.

Просто хотел узнать, почему статические файлы не генерируются и не кэшируются в рабочем режиме или режиме по умолчанию, поскольку этот режим предполагает более быструю работу и большее кэширование? Не создавать статические файлы в этих режимах кажется разумным, но я есть недоумение по поводу того, почему в этих режимах не будет создаваться кэш?

Author: Michel Gokan, 2016-04-20

2 answers

Вот разъяснение между тремя различными режимами (источник: Курс основ Magento U). Жирным шрифтом выделены конкретные моменты, связанные с вашим вопросом.

Режим разработчика

  • Статическая материализация файлов не включена.
  • Неперехваченные исключения, отображаемые в браузере
  • Исключения, возникающие в обработчике ошибок, не регистрируются
  • Вход в систему var/report, очень подробный.

Вам следует использовать режим разработчика во время разработки настроек или расширений. Основное преимущество этого режима заключается в том, что вам видны сообщения об ошибках. Его не следует использовать в производстве из-за его влияния на производительность. В режиме разработчика файлы статического представления создаются каждый раз, когда они запрашиваются. Они записываются в каталог pub/static, но этот кэш не используется. Это оказывает большое влияние на производительность, но любые изменения, вносимые разработчиком для просмотра файлов сразу видны.

Неперехваченные исключения отображаются в браузере, а не регистрируются. Исключение возникает всякий раз, когда невозможно вызвать подписчика события.

Вход в систему var/report в этом режиме очень детализирован.

Режим производства

  • Этап развертывания в производственной системе; высочайшая производительность
  • Исключения не отображаются пользователю - записываются только в журналы.
  • Этот режим отключает статический файл материализация.
  • Корневой каталог Magento может иметь разрешения только для чтения.

Вы должны запустить Magento в рабочем режиме, как только он будет развернут на рабочем сервере.

Производственный режим обеспечивает самую высокую производительность в Magento 2.

Наиболее важным аспектом этого режима является то, что ошибки регистрируются в файловой системе и никогда не отображаются пользователю. В этом режиме файлы статического представления не создаются "на лету", когда они запрошенный; вместо этого они должны быть развернуты в каталоге pub/static с помощью средства командной строки. Созданные страницы будут содержать прямые ссылки на развернутые ресурсы страниц.

Любые изменения для просмотра файлов требуют повторного запуска средства развертывания.

Поскольку файлы представления развертываются с помощью средства командной строки, веб-пользователю необходимо иметь доступ на запись. Каталог Magento pub/static может иметь разрешения только для чтения, что является более безопасной настройкой на общедоступном сервере.

Режим по умолчанию

  • Используется, когда не указан другой режим
  • Скрывает исключения от пользователя и записывает их в файлы журналов
  • Включена статическая материализация файлов.
  • Не рекомендуется /не оптимизировано для производства: кэширование отрицательно влияет на производительность.

Как следует из названия, программное обеспечение Magento работает в режиме по умолчанию если нет другого режима, то указанный.

В этом режиме ошибки регистрируются в файлах в var/reports и никогда не показываются пользователю. Файлы статического представления материализуются на лету , а затем кэшируются.

В отличие от режима разработчика, изменения файлов просмотра не видны до тех пор, пока не будут удалены созданные файлы статического представления.

Режим по умолчанию не оптимизирован для производственной среды, в первую очередь из-за неблагоприятного влияния на производительность статических файлов , которые материализованные на лету, а не генерирующие и развертывающие их заранее.

Другими словами, создание статических файлов на лету и их кэширование оказывает большее влияние на производительность, чем их создание с помощью инструмента командной строки для создания статических файлов.

 2
Author: Raphael at Digital Pianism, 2016-04-20 09:35:58

Я наткнулся на связанную проблему, когда ресурсы для панели администратора не создавались в производственном режиме.

Согласно документам, при запуске setup:static-content:deploy должны создаваться как внешние, так и внутренние ресурсы, но в моем случае был создан только внешний интерфейс.

Это можно исправить, просто выполнив команду deploy для серверной части отдельно:

bin/magento setup:static-content:deploy --area adminhtml -f en_GB en_US
 0
Author: Arne, 2020-08-10 12:02:14