Implementación de archivos de vista estática
El comando de implementación de archivos de vista estática permite escribir archivos estáticos en el sistema de archivos de Commerce cuando el software de 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 la <magento_root>/pub/static
y algunos se almacenan en caché en el <magento_root>/var/view_preprocessed
también en el directorio.
La implementación de archivos de vista estática se ve afectada por los modos de aplicación de la siguiente manera:
- Predeterminado y promotor Modos: Commerce los genera bajo demanda, pero el resto se almacenan en caché en un archivo para acelerar el acceso.
- Producción Modo: los archivos estáticos son no generado o almacenado 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 cambiar al propietario del sistema de archivos.
-
Eliminar el contenido de
<magento_root>/pub/static
, excepto para el.htaccess
archivo. 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, la variable pub/static
el sistema de directorios 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 todo.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.
- Utilice el estrategia rápida para minimizar el tiempo de implementación. Esta es la opción de comando predeterminada si no se especifica.
- Utilice el estrategia estándar para implementar todos los archivos de vista estática para todos los paquetes.
- Utilice el 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 inglés de EE. UU. (en_US
), excluye la temática de Luma proporcionada con Commerce y no minimiza los archivos del 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 el tema 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
Implementación de 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:
- Ejecutar
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 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 Commerce mediante la variable línea de comandos.
- Inicie sesión en el servidor de aplicaciones como, o cambiar a, el propietario del sistema de archivos.
- Eliminar el contenido de
<app_root>/pub/static
, excepto para el.htaccess
archivo. 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.