Зміни в CSS і JavaScript застосовуються лише після розгортання статичного вмісту

Я встановив 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. Процес розгортання статичного вмісту йде повільно і забирає стільки часу, що це дуже засмучує. Я щось розробляю і маю розгортати, щоб отримати зміни. Навіть для дуже невеликих змін. Промивання кешу не допомагає. Будь-яка допомога буде оцінена. Заздалегідь спасибі.

8

5 Відповіді

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

Якщо ви очищаєте статичну папку і відкриваєте сторінку в браузері, буде використана стратегія посилання та створено посилання на оригінальний файл. Таким чином, ви зміните джерело і побачите зміни

4
додано
Це вірно, але завантаження сторінки після очищення статичного вмісту та його розгортання займає більше часу. Існує також проблема кешу веб-переглядача, хоча в цьому випадку можна використовувати вкладки анонімного перегляду, що знову збільшує час завантаження, коли створюється новий вміст. В основному, це процес, який вимагає багато часу, і ви не можете заперечувати цього.
додано Автор Max Stern, джерело

For now you only have this way to apply changes. Magento should be apply changes to pub/static dir but it not. This still know bug. Hope it should be fix soon
You can apply new changes by command as like you do. This way will take some times but should work
My way when i modify JS from my extension . I just go to pub dir and clear folder

\pub\static\frontend\Magento\luma\en_US\\js

Ви можете зробити те ж саме з файлами css, коли налаштовуєте стилі

4
додано
Ви знаєте про якийсь квиток на github або це ваша особиста думка? Як я знаю, тут немає питання.
додано Автор Shane Courtrille, джерело

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

Тому,

  1. Не видаляти файл .htacess.
  2. Видалити лише каталог певної теми, напр. видаляти вміст лише в pub/static/frontend/Your/theme

З мого досвіду, при використанні символічних посилань на статичні файли в режимі розробника вам не потрібно видаляти їх, щоб бачити зміни. Якщо ви сумніваєтеся, просто запустіть

php bin/magento cache:flush
0
додано

But once I removed manually from the \pub\static\frontend\Magento\luma\en_US\Vendor_Module\js directory, it is not auto generated once page loading. For that again, I have to apply command static-content deploy, then there is occurring new changes in the JS & CSS files what I did for module specific.

0
додано

Якщо ви працюєте

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

Перед розгортанням статичних активів Magento створить у публіці/статичній директорії символьне посилання (не копіювати) до файлів постачальника.

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

Тепер ви можете скористатися бігунтом завдань для компіляції файлів і створення css.

0
додано