Розгортання статичного контенту в Magento 2 – це функція Magento, яка допомагає підтримувати користувацький досвід на найвищому рівні. Чому? Вона гарантує правильне створення сторінок вашого магазину, завантаження статичних файлів перегляду браузером та відображення статичного контенту відповідно до запитів користувачів.
У цьому вичерпному посібнику ви знайдете все, що вам потрібно знати про розгортання статичного контенту в Magento 2. Що це таке, причини його використання, як розгортати статичний контент у Magento 2 трьома різними способами та як .
Крім того, ми розглянемо найкращі практики, стратегії та приклади розгортання Magento, щоб допомогти вам краще зрозуміти тему.
Незалежно від того, чи ви тільки починаєте розробку Magento, чи вже маєте певні знання, ця стаття допоможе вам вдосконалити ваші навички. Ви відкриєте для себе щось нове про розгортання статичного контенту в Magento.
Нам є що розглянути, але почнемо з основ.
Огляд розгортання файлів статичних представлень
Розгортання файлів статичних представлень дозволяє записувати статичні файли в систему Magento під час налаштування Magento для робочого режиму.
Частина Static стосується файлів, які можна кешувати, якщо вони не генеруються динамічно, а view — шару Model-View-Controller.
Ви можете знайти статичні файли представлень у каталозі /pub/static (містить js, css, html та інші) або /var/view_preprocessed (містить файли phtml).
Також важливо зазначити, що розгортання статичних файлів перегляду визначається Режими Magento :
- У режимі за замовчуванням та для розробників Magento генерує статичні файли на вимогу та кешує решту файлів.
- У режимі у режимі виробництва статичні файли не генеруються та не кешуються, вам потрібно писати статичні файли перегляду вручну за допомогою команди. Ми поговоримо про це пізніше.
Навіщо використовувати розгортання статичного контенту в Magento?
Хоча розгортання статичного контенту в Magento 2 використовується лише розробниками, багатьом людям, які не є технічними фахівцями, все ще потрібно знати, чому воно використовується та як це сприяє взаємодії з користувачем.
Доступність статичного контенту
Усі знаходяться в папці програми або постачальника . Ось як працює структура файлу модуля в Magento. Відповідно, браузер не має доступу до цих папок.
Але все ж модулі та теми можуть мати статичний контент , наприклад, CSS, зображення, JavaScripts , що йдуть разом із розширенням і знаходяться в папках тем. Оскільки вони знаходяться в папках програми та постачальника, браузери не можуть завантажити ці статичні файли для відображення відвідувачам вашого магазину.
Отже, розгортання статичного контенту дозволяє переміщувати файли розширень до папки pub/static, щоб зробити їх доступними для завантаження в браузері.
Коли Magento переміщує файли до папки pub/static, він перевіряє, чи є тема файли були перевизначені у вашій темі дочірньою.
Скомпільовано LESS
Браузери можуть читати лише CSS, тоді як більшість стилів написані мовою LESS. Тому, щоб браузер міг читати ці стилі, потрібно скомпілювати їх у CSS. Це ще одна причина використовувати розгортання статичного контенту, щоб зробити LESS зрозумілим для браузерів.
Мінімізація HTML
Якщо у вас увімкнено мінімізацію HTML в адміністративній панелі, розгортання статичного контенту в Magento 2 підготує мініфіковані файли та перемістить їх до папки var/view_preprocessed.
Отже, якщо ви вносите будь-які зміни в шаблони, JS, CSS, зображення або встановлення розширень у Magento , вам потрібно використовувати розгортання статичного контенту Magento, щоб зробити ці зміни доступними для завантаження та відображення користувачам у браузері.
Стратегії розгортання статичного контенту Magento 2
Незалежно від мети, для якої ви використовуєте розгортання статичного контенту, Magento 2 дозволяє вам інтегрувати різні стратегії розгортання статичного контенту. Вони забезпечують різні результати розгортання та використовуються в різних випадках використання.
Давайте розглянемо ці випадки та розглянемо кожну зі стратегій.
Стандартний
Ця стратегія розгортання статичного контенту є звичайною та найбільш відомою. У випадку стандартної стратегії всі статичні файли для всіх пакетів розгортаються та обробляються \Magento\Framework\App\View\Asset\Publisher.
Також усі файли для довільної локалі розгортаються в кожній темі.
Швидка
Швидка стратегія працює так само, як і стандартна. Однак у всіх інших локалях теми, окрім довільної локалі, визначаються та розгортаються файли, які замінюють розгорнуту тему.
Інші файли копіюються з розгорнутої локалі, оскільки вони вважаються подібними (незалежно від локалі, області чи теми) для всіх локалей.
Назва швидкої стратегії говорить сама за себе. Хоча в цьому методі дублюється багато файлів, час, необхідний для розгортання для кількох локалей, скорочується.
Компактна
На відміну від швидкої стратегії, у компактній файли успадковуються від базових тем та локалей, тобто вони зберігаються в базових підкаталогах. Це дозволяє уникнути дублювання файлів і дозволяє зберігати ці реакції у файлах карти для кожної комбінації теми, локалі та області.
Потім файли розгортаються в підкаталогах на основі таких шаблонів:
| Шаблон | Опис |
| / |
Розгорнуті файли є специфічними для певної області, теми та локалі. |
| /Magento/base/ |
Розгорнуті файли є специфічними для певних областей та локалей, але схожими для всіх тем. |
| / |
Розгорнуті файли схожі для всіх локалей певної теми певної області. |
| /Magento/base/default | Розгорнуті файли є специфічними для певної області, але схожими для всіх локалей та тем. |
| base/Magento/base/ |
Розгорнуті файли є специфічними для певної локалі, але схожими для всіх тем та областей. |
| base/Magento/base/default | Розгорнуті файли є схожими для всіх тем, областей та локалей. |
Як розгорнути статичний контент у Magento 2?
Після того, як ви оберете стратегію розгортання статичного контенту для розробки вашого магазину, вам потрібно дослідити, як це зробити.
Як ми вже згадували, ви можете знайти статичні файли перегляду в каталогах /pub/static або dir/var/view_preprocessed. Однак деякі файли потрібно записати до файлової системи Magento 2 вручну.
У режимі розробника вам потрібно очистити старі файли CSS, JS, макета, щоб уникнути проблем зі статичними файлами та переконатися, що всі нові файли працюватимуть правильно в новому модулі.
Існує кілька можливих способів очищення старих файлів у Magento 2.
Вручну
Щоб розгорнути статичні файли перегляду в Magento 2 вручну:
- Увійдіть на свій сервер Magento як власник файлової системи .
- Видаліть усі файли в папці /pub/static . Не видаляйте файл .htaccess ..
- Виконайте команду розгортання статичного контенту:
bin/magento setup:static-content:deploy
Примітка: Каталог pub/static має бути доступним для запису, якщо ви ввімкнули об'єднання статичних файлів перегляду в адміністративній панелі. Якщо pub/static недоступний для запису, static-content:deploy не запуститься.
![]()
Порада професіонала: ми рекомендуємо видалити лише такі файли з папки pub/static:
pub/static/_cache
pub/static/deployed_version.txt
pub/static/frontend
pub/static/adminhtml
pub/static/_requirejs
Автоматично
Magento також дозволяє очищати згенеровані файли статичних переглядів з панелі адміністратора. Вам просто потрібно перейти до Системи > Інструменти > Керування кешем та натиснути кнопку Очистити кеш статичних файлів.
![]()
Через команду CLI
Запуск розгортання статичного контенту через команду CLI є найпоширенішим способом очищення файлів статичних переглядів у Magento 2.
Зазвичай, команда CLI, яка використовується для розгортання статичного контенту, -
bin/magento setup:static-content:deploy
. Однак це може залежати від різних параметрів, які вам потрібно використовувати. Жоден з них не є обов'язковим, але ми розглянемо їх усі, щоб ви краще розуміли, як можна змінювати розгортання статичного контенту Magento.
| Параметр | Команда Опис | |
| -l |
--language | Генерує файли для вказаних вами мов. За замовчуванням розгортання статичного контенту генерує файли для всіх мов. |
| --exclude-language | Генерує файли для всіх мов, крім виключених мов. | |
| -t |
--theme |
Генерує файли для вказаних тем. За замовчуванням файли генеруються для всіх тем. |
| --exclude-theme |
Генерує файли для всіх тем, крім виключених тем. | |
| -a | --area | Генерує файли для всіх зазначених областей (adminhtml або фронтенд). За замовчуванням файли генеруються для всіх областей. |
| --exclude-area | Генерує файли для всіх областей, крім виключених. | |
| -j |
--jobs | Вмикає паралельну обробку з вказаною кількістю завдань. Значення за замовчуванням — 0, що не запускає паралельну обробку. |
| --symlink-locale | Створює символічні посилання для локалей, які не мають налаштувань і передаються для розробки. | |
| --content-version=ВЕРСІЯ-ВМІСТУ | Використовує користувацьку версію статичного контенту, щоб забезпечити ідентичність версії статичного контенту та належну роботу кешування під час розгортання на кількох вузлах. | |
| --no-javascript | Не розгортає файли JavaScript. | |
| --no-css | Не розгортає файли CSS. | |
| --no-less | Не розгортає файли LESS. | |
| --no-images | Не розгортає зображення. | |
| --no-fonts | Не розгортає файли шрифтів. | |
| --no-html | Не розгортає файли HTML. | |
| --no-misc | Не розгортає інші типи файлів (.md, .jbf, .csv, .json, .txt, .htc, .swf). | |
| --no-html-minify | Не мініфікує файли HTML. | |
| - s | - s quick | Використовує стратегію швидкого розгортання. Це параметр за замовчуванням, якщо не вибрано нічого іншого. |
| - s standard | Використовує стандартну стратегію розгортання для розгортання всіх файлів у всіх пакетах. | |
| - s compact | Використовує компактну стратегію розгортання. | |
| --no-parent | --no-parent | Не генерує файли для батьківської або поточної теми. Рекомендується використовувати цей параметр, якщо ви не використовуєте батьківську або поточну тему явно, щоб збільшити час процесу. |
| -f | --force | Розгортає файли в будь-якому режимі. За замовчуванням працює лише у виробничому режимі. |
Це досить довгий список. Ви, очевидно, не будете використовувати всі параметри в одній команді. Однак, є різні випадки використання, які ви можете дослідити.
Приклади розгортання статичного контенту в Magento
Тепер, коли ви знаєте, чому використовується розгортання статичного контенту та які стратегії існують, давайте заглибимося в розробку та перевіримо приклади того, як можна запускати команди розгортання статичного контенту.
Розгортання статичного контенту в Magento 2 для певної теми
Коли ви запускаєте розгортання статичного контенту за замовчуванням, воно розгортає всі файли на всіх темах, що займає певний час. Щоб запустити його лише для певної теми, використовуйте такі параметри:
bin/magento setup:static-content:deploy --theme="ThemeVendor/themename"
Або якщо ви хочете виключити певну тему з розгортання:
bin/magento setup:static-content:deploy --exclude-theme="ThemeVendor/themename"
Розгортання статичного контенту в режимі розробника та за замовчуванням
Порада професіонала: Якщо ви використовуєте розгортання статичного контенту лише для встановлення, оновлення або видалення розширень Magento 2, ви можете просто виконати:
php bin/magento setup:static-content:deploy -f
Розгортання статичного контенту в Magento 2 для мови
З розгортанням статичного контенту можуть виникати різні проблеми. Тому, якщо ви використовуєте різні мови, ми рекомендуємо вам запускати його для певних мов.
bin/magento setup:static-content:deploy de_DE
Розгортання статичного контенту в Magento 2 є дуже гнучким, тому ви можете комбінувати різні параметри під час розгортання статичних файлів перегляду у файловій системі Magento.
Наприклад, ви можете запустити розгортання в режимі за замовчуванням або в режимі розробки для певної теми та локалізації.
bin/magento setup:static-content:deploy -d --theme="ThemeVendor/themename" de_DE
Крім того, ви можете виключити всі шрифти та CSS з розгортання на певній локалізації.
bin/magento setup:static-content:deploy de_DE --no-css --no-fonts
Існує кілька інших комбінацій параметрів, які ви можете використовувати залежно від вашого випадку. Ви обов'язково використаєте деякі з них.
Вирішення проблем із розгортанням статичних файлів перегляду
Найпоширеніші проблеми з розгортанням статичного контенту пов'язані з дозволами та користувачами, яким надано право виконувати команди розгортання. Одна з них - bash: bin/magento: Відмовлено в доступі .
Все, що вам потрібно зробити в цьому випадку, це просто перевірити дозволи користувачів і переконатися, що ви виконуєте команди з кореневого каталогу Magento. Дуже часто система надасть інструкції щодо виправлення проблеми з дозволами, якщо такі виникнуть.
Однак є ще одна проблема. Вона полягає в наступному:
ERROR: You need to install the Magento application before running this utility.
Щоб її виправити, вам слід:
- Встановити Magento за допомогою CLI або майстра налаштування.
- Увійти на сервер Magento як власник файлової системи.
- Видалити всі файли з каталогу pub/static , крім файлу .htaccess .
- Виконати команду розгортання статичного контенту:
bin/magento setup:static-content:deploy
Зменшити час простою під час розгортання статичного контенту
Зазвичай системі потрібен певний час для розгортання статичного контенту в системі Magento. Дуже часто час розгортання пов'язаний з простоєм веб-сайту.
Оскільки ви вже знаєте, існують різні стратегії розгортання. Деякі дозволяють запускати розгортання швидше, ніж інші, але ви не можете повністю уникнути простоїв, що погано впливає на враження клієнтів.
Отже, вам слід розглянути більш ефективні способи розгортання статичного контенту Magento. Перегляньте ці команди розгортання з нульовим часом простою , щоб уникнути простоїв та забезпечити безперебійний досвід для ваших клієнтів.
