Magento 2: ¿Qué es un "archivo de vista estática"?

21

Si uso el comando module:enableo module:disablepara habilitar o deshabilitar un módulo,

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

La salida incluirá los siguientes contenidos

Alerta: los archivos de vista estática generados no se borraron. Puede borrarlos usando la opción --clear-static-content. Si no se borran los archivos de vista estática, pueden aparecer problemas de visualización en el Administrador y el escaparate.

¿Qué es exactamente un archivo de vista generado estático?

¿Dónde viven estos archivos?

Si incluyo la --clear-static-contentopción, ¿solo estoy eliminando archivos, o esto también restablecerá otras cosas en el sistema?

Alan Storm
fuente

Respuestas:

12

Parece solo para eliminar archivos (e imprimir algunos resultados). Con esa bandera establecida, la pila contiene:

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

que vacía estos directorios (consulte \ Magento \ Framework \ App \ Filesystem \ DirectoryList):

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

Si busco usos de DirectoryList::STATIC_VIEW, veo una gran cantidad de resultados, pero notablemente la mayor parte tiene que ver con la implementación y limpieza de CSS y JS fusionado. Sin más excavaciones, creo que es seguro decir que una "vista estática" es un archivo de activos estáticos postprocesados ​​como CSS y JS. Tengo curiosidad por ver cómo los desarrolladores amplían y modifican esta característica.

kojiro
fuente
12

"Ver" se refiere a la capa de presentación (de MVC).

"Estático" significa que se puede almacenar en caché para un sitio (no es dinámico). Por ejemplo, CSS generado a partir de MENOS archivos.

En producción podemos precalcular los archivos. En modo desarrollador podemos generar a pedido, pero el resto se almacena en caché en un archivo para mayor velocidad. Por lo tanto, si carga un nuevo módulo, es posible que cargue nuevos archivos JS, CSS, de diseño, etc., por lo que debe eliminar los archivos antiguos para asegurarse de obtener todos los cambios para el nuevo módulo.

Borrar contenido estático en este momento borra archivos. Algún día podría hacer más, pero aún no hay planes que yo sepa.

Viven en pub / static, pero también hay archivos en caché en / var.

Alan Kent
fuente
Gracias. Agregaré una definición a devdocs.magento.com/guides/v1.0/config-guide/cli/…
Steve Johnson