Изменения в CSS и JavaScript применяются только после развертывания статического содержимого.

8

Я установил Magento 2 с сайта Magento. Я активировал режим разработчика

{project directory}>php bin/magento setup:mode:set developer

Затем я установил свою собственную тему и, наконец, развернул свой статический контент:

{project directory}>php bin/magento setup:static-content:deploy

Моя проблема заключается в том, что мне приходится pub/staticкаждый раз удалять каталог и развертывать статический контент, чтобы применить изменения CSS и Javacript. Процесс развертывания статического контента идет медленно и занимает так много времени, что это очень расстраивает. Я что-то разрабатываю и должен развернуть, чтобы появилось изменение. Даже для очень маленьких изменений. Очистка кеша не помогает. Любая помощь будет оценена. Заранее спасибо.

Джанака Домбавела
источник

Ответы:

4

Пока у вас есть только этот способ применить изменения. Magento следует применить изменения к pub / static dir, но это не так. Это все еще известная ошибка. Надеюсь, что это будет исправлено в ближайшее время.
Вы можете применить новые изменения по команде, как и вы. Этот способ займет несколько раз, но должен работать
Мой путь, когда я изменяю js из моего расширения. Я просто захожу в паб dir и очищаю папку

\pub\static\frontend\Magento\luma\en_US\<Vendor_Module>\js

Вы можете сделать то же самое с CSS-файлами при настройке стилей

mrtuvn
источник
Вы знаете о каком-то билете на github или это ваше личное мнение? Как я знаю, там нет проблем.
Канди
4

У Magento разные стратегии материализации статических активов. Копия и ссылка. При запуске setup: static-content: deploy этой команды используйте стратегию копирования, и файл будет материализован в статической папке и не изменится при изменении оригинала.

Если вы очистите статическую папку и откроете страницу в браузере, будет использована стратегия ссылок и будет создана ссылка на оригинальный файл. Таким образом, вы измените источник и увидите изменения

Канди
источник
Это верно, но загрузка страницы занимает больше времени после очистки статического содержимого и без его развертывания. Существует также проблема кеширования браузера, хотя в этом случае мы можем использовать вкладки инкогнито, что снова увеличивает время загрузки при создании свежего контента. По сути, это трудоемкий процесс, и вы не можете этого отрицать.
Санджай Чаудхари
0

Но как только я удалил вручную из каталога \ pub \ static \ frontend \ Magento \ luma \ en_US \ Vendor_Module \ js, он не генерируется автоматически после загрузки страницы. Для этого мне снова нужно применить команду static-content deploy, затем в файлах js & css происходят новые изменения, которые я сделал для конкретного модуля.

Шарада
источник
0

Если вы бежите

bin/magento dev:source-theme:deploy --theme [Vendor]/[theme] --locale <locale>

перед развертыванием статического ресурса Magento создаст в каталоге pub / static символическую ссылку (не копирует) в файлы вендора.

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

Теперь вы можете использовать средство запуска задач для компиляции ваших файлов и генерации CSS.

nuovecode
источник
0

Проблема заключается в том, что при удалении всего содержимого pub / static вы также удаляете файл .htaccess, и это вызывает проблемы с генерацией символических ссылок на статический ресурс в режиме разработчика.

Так,

  1. Не удаляйте файл .htacess.
  2. Удалить только каталог вашей конкретной темы, напр. удалять содержимое только в pub / static / frontend / Your / theme

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

php bin/magento cache:flush
Ивета Аллогенес
источник