Implementación de archivos de vista estática
El comando de implementación de archivos de vista estática le permite escribir archivos estáticos en el sistema de archivos Commerce cuando el software Commerce está configurado para modo de producción.
El término archivo de vista estática hace referencia a lo siguiente:
- Estático significa que se puede almacenar en caché para un sitio (es decir, el archivo no se genera dinámicamente). Algunos ejemplos son imágenes y CSS generadas a partir de LESS.
- "Ver" se refiere a la capa de presentación (de MVC).
Los archivos de vista estática se encuentran en el directorio <magento_root>/pub/static
y algunos también se almacenan en caché en el directorio <magento_root>/var/view_preprocessed
.
La implementación de archivos de vista estática se ve afectada por los modos de aplicación de la siguiente manera:
- Modos Default y developer: Commerce los genera bajo demanda, pero el resto se almacena en caché en un archivo para mayor velocidad de acceso.
- Modo Producción: los archivos estáticos no se generan o almacenan en caché.
Debe escribir archivos de vista estática en el sistema de archivos de Commerce manualmente mediante el comando que se describe en este tema; después, puede restringir los permisos para limitar las vulnerabilidades y evitar la sobrescritura accidental o maliciosa de archivos.
Para implementar archivos de vista estática:
-
Inicie sesión en el servidor de Commerce como o cambie al propietario del sistema de archivos.
-
Eliminar el contenido de
<magento_root>/pub/static
, excepto el archivo.htaccess
. No elimine este archivo. -
Ejecute la herramienta de implementación de archivos de vista estática
<magento_root>/bin/magento setup:static-content:deploy
.note info INFO Si habilita la combinación de archivos de vista estática en el administrador, el sistema de directorios pub/static
debe poder escribirse.Opciones de comando:
code language-bash bin/magento setup:static-content:deploy [<languages>] [-t|--theme[="<theme>"]] [--exclude-theme[="<theme>"]] [-l|--language[="<language>"]] [--exclude-language[="<language>"]] [-a|--area[="<area>"]] [--exclude-area[="<area>"]] [-j|--jobs[="<number>"]] [--no-javascript] [--no-css] [--no-less] [--no-images] [--no-fonts] [--no-html] [--no-misc] [--no-html-minify] [--no-parent] [-f|--force]
En la tabla siguiente se explican los parámetros y valores de este comando.
<languages>
en_US
).Busque la lista ejecutando:
bin/magento info:language:list
--language (-l)
Por ejemplo:
--language en_US --language es_ES
--exclude-language
--theme <theme>
Por ejemplo:
--theme Magento/blank --theme Magento/luma
--exclude-theme <theme>
Por ejemplo,
--exclude-theme Magento/blank
--area (-a)
adminhtml
y frontend
. El valor predeterminado es all.Por ejemplo:
--area adminhtml
--exclude-area
--jobs (-j)
--symlink-locale
--content-version=CONTENT-VERSION
--no-javascript
--no-css
--no-less
--no-images
--no-fonts
--no-html
--no-misc
--no-html-minify
-s <quick|standard|compact>
Defina la estrategia de implementación. Utilice estas opciones solo si tiene más de un local.
- Use la estrategia rápida para minimizar el tiempo de implementación. Esta es la opción de comando predeterminada si no se especifica.
- Use la estrategia estándar para implementar todos los archivos de vista estática para todos los paquetes.
- Use la estrategia compacta para conservar espacio en disco en el servidor.
--no-parent
--force (-f)
<languages>
y --language
, <languages>
tiene prioridad.Ejemplos
A continuación se muestran algunos comandos de ejemplo.
Exclusión de una temática y minificación de HTML
El siguiente comando implementa contenido estático para el idioma inglés de EE. UU. (en_US
), excluye la temática de Luma proporcionada con Commerce y no minimiza los archivos de HTML.
bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify
Salida de ejemplo:
Requested languages: en_US
Requested areas: frontend, adminhtml
Requested themes: Magento/blank, Magento/backend
=== frontend -> Magento/blank -> en_US ===
=== adminhtml -> Magento/backend -> en_US ===
...........................................................
... more ...
Successful: 2055 files; errors: 0
---
New version of deployed files: 1466710645
............
Successful: 1993 files; errors: 0
---
El siguiente comando implementa únicamente JavaScript, con 4 trabajos, con una estrategia de implementación estándar:
bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4
El siguiente comando implementa solo CSS y LESS con 3 trabajos, y una estrategia de implementación rápida:
bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3
Generar archivos de vista estática para una temática y un área
El siguiente comando genera archivos de vista estática para todos los idiomas, solo para el área de front-end y solo para la temática de Commerce Luma, sin generar fuentes:
bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma
Salida de ejemplo:
Requested languages: en_US
Requested areas: frontend
Requested themes: Magento/luma
=== frontend -> Magento/luma -> en_US ===
...........................................................
... more ...
........................................................................
Successful: 2092 files; errors: 0
---
New version of deployed files: 1466711110
Implementar archivos de vista estática sin instalar Commerce
Es posible que desee ejecutar el proceso de implementación en un entorno independiente, que no sea de producción, para evitar procesos de generación en equipos de producción confidenciales.
Para ello, siga los siguientes pasos:
- Ejecute
bin/magento app:config:dump
para exportar la configuración desde el sistema de producción. - Copie los archivos exportados en la base del código que no sea de producción.
- Implementar archivos de vista estática:
bin/magento setup:static-content:deploy
Solución de problemas de la herramienta de implementación de archivos de vista estática
Instale primero el software de Commerce; de lo contrario, no podrá ejecutar la herramienta de implementación de archivos de vista estática.
Síntoma: se muestra el siguiente error al ejecutar la herramienta de implementación de archivos de vista estática:
ERROR: You need to install the Commerce application before running this utility.
Solución:
Siga estos pasos:
- Instale el software de Commerce mediante la línea de comandos.
- Inicie sesión en el servidor de aplicaciones como propietario del sistema de archivos o cambie a.
- Elimine el contenido del directorio
<app_root>/pub/static
, excepto el archivo.htaccess
. No elimine este archivo. - Implementar archivos de vista estática:
bin/magento setup:static-content:deploy
Sugerencia para que los desarrolladores personalicen la herramienta de implementación de contenido estático
Al crear una implementación personalizada de la herramienta de implementación de contenido estático, utilice únicamente la escritura de archivos atómicos para los archivos que deben estar disponibles en el cliente. Si utiliza la escritura de archivos no atómicos, esos archivos podrían cargarse en el cliente con contenido parcial.
Una de las opciones para hacerlo atómico es escribir en archivos almacenados en un directorio temporal y copiarlos o moverlos al directorio de destino (desde donde se cargan en el cliente) después de que termine la escritura. Para obtener más información sobre cómo escribir en archivos, consulte php fwrite.