Почему статические файлы не создаются и не кэшируются в режиме по умолчанию или в рабочем режиме в Magento 2?
Как указано в этой ссылке: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-static-view.html
На развертывание файлов статического представления режимы Magento влияют следующим образом:
Режим разработчика: Magento генерирует их по требованию, но остальные кэшируются в файле для ускорения доступа.
Режимы по умолчанию и производства: Статические файлы не создаются и не кэшируются.
Вы должны записать файлы статического представления в файловую систему Magento вручную с помощью команды, описанной в этом разделе; после этого вы можете ограничить разрешения, чтобы ограничить свои уязвимости и предотвратить случайную или вредоносную перезапись файлов.
Просто хотел узнать, почему статические файлы не генерируются и не кэшируются в рабочем режиме или режиме по умолчанию, поскольку этот режим предполагает более быструю работу и большее кэширование? Не создавать статические файлы в этих режимах кажется разумным, но я есть недоумение по поводу того, почему в этих режимах не будет создаваться кэш?
2 answers
Вот разъяснение между тремя различными режимами (источник: Курс основ Magento U). Жирным шрифтом выделены конкретные моменты, связанные с вашим вопросом.
Режим разработчика
- Статическая материализация файлов не включена.
- Неперехваченные исключения, отображаемые в браузере
- Исключения, возникающие в обработчике ошибок, не регистрируются
- Вход в систему
var/report
, очень подробный.
Вам следует использовать режим разработчика во время разработки настроек или расширений. Основное преимущество этого режима заключается в том, что вам видны сообщения об ошибках. Его не следует использовать в производстве из-за его влияния на производительность. В режиме разработчика файлы статического представления создаются каждый раз, когда они запрашиваются. Они записываются в каталог
pub/static
, но этот кэш не используется. Это оказывает большое влияние на производительность, но любые изменения, вносимые разработчиком для просмотра файлов сразу видны.Неперехваченные исключения отображаются в браузере, а не регистрируются. Исключение возникает всякий раз, когда невозможно вызвать подписчика события.
Вход в систему
var/report
в этом режиме очень детализирован.
Режим производства
- Этап развертывания в производственной системе; высочайшая производительность
- Исключения не отображаются пользователю - записываются только в журналы.
- Этот режим отключает статический файл материализация.
- Корневой каталог Magento может иметь разрешения только для чтения.
Вы должны запустить Magento в рабочем режиме, как только он будет развернут на рабочем сервере.
Производственный режим обеспечивает самую высокую производительность в Magento 2.
Наиболее важным аспектом этого режима является то, что ошибки регистрируются в файловой системе и никогда не отображаются пользователю. В этом режиме файлы статического представления не создаются "на лету", когда они запрошенный; вместо этого они должны быть развернуты в каталоге
pub/static
с помощью средства командной строки. Созданные страницы будут содержать прямые ссылки на развернутые ресурсы страниц.Любые изменения для просмотра файлов требуют повторного запуска средства развертывания.
Поскольку файлы представления развертываются с помощью средства командной строки, веб-пользователю необходимо иметь доступ на запись. Каталог Magento
pub/static
может иметь разрешения только для чтения, что является более безопасной настройкой на общедоступном сервере.
Режим по умолчанию
- Используется, когда не указан другой режим
- Скрывает исключения от пользователя и записывает их в файлы журналов
- Включена статическая материализация файлов.
- Не рекомендуется /не оптимизировано для производства: кэширование отрицательно влияет на производительность.
Как следует из названия, программное обеспечение Magento работает в режиме по умолчанию если нет другого режима, то указанный.
В этом режиме ошибки регистрируются в файлах в
var/reports
и никогда не показываются пользователю. Файлы статического представления материализуются на лету , а затем кэшируются.В отличие от режима разработчика, изменения файлов просмотра не видны до тех пор, пока не будут удалены созданные файлы статического представления.
Режим по умолчанию не оптимизирован для производственной среды, в первую очередь из-за неблагоприятного влияния на производительность статических файлов , которые материализованные на лету, а не генерирующие и развертывающие их заранее.
Другими словами, создание статических файлов на лету и их кэширование оказывает большее влияние на производительность, чем их создание с помощью инструмента командной строки для создания статических файлов.
Я наткнулся на связанную проблему, когда ресурсы для панели администратора не создавались в производственном режиме.
Согласно документам, при запуске setup:static-content:deploy
должны создаваться как внешние, так и внутренние ресурсы, но в моем случае был создан только внешний интерфейс.
Это можно исправить, просто выполнив команду deploy для серверной части отдельно:
bin/magento setup:static-content:deploy --area adminhtml -f en_GB en_US