Magento 2: O que é um "arquivo de exibição estática"

21

Se eu usar o comando module:enableou module:disablepara ativar ou desativar um módulo,

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

A saída incluirá o seguinte conteúdo

Alerta: os arquivos de exibição estática gerados não foram limpos. Você pode limpá-los usando a opção --clear-static-content. Não limpar os arquivos de exibição estática pode causar problemas de exibição no Admin e na frente da loja.

O que exatamente é um arquivo de exibição estático gerado?

Onde esses arquivos estão localizados?

Se eu incluir a --clear-static-contentopção, estou apenas excluindo arquivos ou isso também redefinirá outras coisas no sistema?

Alan Storm
fonte

Respostas:

12

Aparece apenas para remover arquivos (e imprimir alguma saída). Com esse sinalizador definido, a pilha contém:

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

que esvazia esses diretórios (consulte \ Magento \ Framework \ App \ Filesystem \ DirectoryList):

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

Se eu procurar usos de DirectoryList::STATIC_VIEW, vejo muita saída, mas notavelmente a maior parte está relacionada à implantação e limpeza de CSS e JS mesclado. Sem mais pesquisas, acho seguro dizer que uma "exibição estática" é um arquivo de ativo estático pós-processado, como CSS e JS. Estou curioso para ver como os desenvolvedores estendem e modificam esse recurso.

kojiro
fonte
12

"Exibir" refere-se à camada de apresentação (do MVC).

"Estático" significa que pode ser armazenado em cache para um site (não é dinâmico). Por exemplo, CSS gerado a partir de arquivos MENOS.

Na produção, podemos pré-calcular os arquivos. No modo desenvolvedor, podemos gerar sob demanda, mas o restante é armazenado em cache em um arquivo para maior velocidade. Portanto, se você carregar um novo módulo, ele poderá carregar novos JS, CSS, arquivo de layout etc. - portanto, você precisará liberar os arquivos antigos para garantir todas as alterações para o novo módulo.

Limpar conteúdo estático no momento exclui arquivos. Um dia isso pode fazer mais, mas ainda não tenho planos que eu saiba.

Eles vivem em pub / static - mas também há arquivos em cache em / var.

Alan Kent
fonte
Obrigado. Vou acrescentar uma definição para devdocs.magento.com/guides/v1.0/config-guide/cli/...
Steve Johnson