Magento 2: Что такое «файл статического представления»

21

Если я использую команду module:enableили, module:disableчтобы включить или отключить модуль,

php bin/magento module:enable Pulsestorm_TutorialObjectManager1
php bin/magento module:enable Pulsestorm_TutorialObjectManager1

Вывод будет включать следующее содержание

Предупреждение: созданные файлы статического представления не были очищены. Вы можете очистить их, используя параметр --clear-static-content. Неспособность очистить файлы статического представления может вызвать проблемы с отображением в Admin и storefront.

Что именно представляет собой статически сгенерированный файл представления?

Где эти файлы живут?

Если я включу эту --clear-static-contentопцию, я просто удаляю файлы, или это сбросит другие функции в системе?

Алан Сторм
источник

Ответы:

12

Похоже, просто чтобы удалить файлы (и распечатать некоторые выходные данные). С этим установленным флагом стек содержит:

\Magento\Setup\Console\Command\AbstractModuleCommand::cleanup
\Magento\Framework\App\State\CleanupFiles::clearMaterializedViewFiles

который очищает эти каталоги (см. \ Magento \ Framework \ App \ Filesystem \ DirectoryList):

DirectoryList::STATIC_VIEW == 'static'
DirectoryList::VAR_DIR == 'var'
DirectoryList::TMP_MATERIALIZATION_DIR == 'view_preprocessed'

Если я ищу варианты использования DirectoryList::STATIC_VIEW, я вижу много выходных данных, но, в частности, большинство из них связано с развертыванием и очисткой CSS и объединенного JS. Без дальнейших раскопок, я думаю, можно с уверенностью сказать, что «статическое представление» - это файл статических активов, обработанный постобработкой, такой как CSS и JS. Мне любопытно посмотреть, как разработчики расширяют и модифицируют эту функцию.

Кодзиро
источник
12

«Вид» относится к уровню представления (из MVC).

«Статический» означает, что он может быть кэширован для сайта (он не динамический). Например, CSS генерируется из LESS файлов.

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

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

Они живут в pub / static - но в / var также есть кэшированные файлы.

Алан Кент
источник
Спасибо. Я добавлю определение в devdocs.magento.com/guides/v1.0/config-guide/cli/…
Стив Джонсон,