Déploiement de fichiers de vue statiques
La commande de déploiement de fichiers de vue statique vous permet d’écrire des fichiers statiques dans le système de fichiers Commerce lorsque le logiciel Commerce est défini pour le mode de production.
Le terme fichier de vue statique fait référence aux éléments suivants :
- « Statique » signifie qu’il peut être mis en cache pour un site (c’est-à-dire que le fichier n’est pas généré dynamiquement). Par exemple, les images et le code CSS générés à partir de LESS.
- « Affichage » fait référence à la couche de présentation (provenant de MVC).
Les fichiers de vue statiques se trouvent dans le répertoire <magento_root>/pub/static
et certains sont également mis en cache dans le répertoire <magento_root>/var/view_preprocessed
.
Le déploiement des fichiers de vue statique est affecté par les modes d’application comme suit :
- Modes par défaut et développeur : Commerce les génère à la demande, mais les autres sont mis en cache dans un fichier pour accélérer l’accès.
- Mode de production : les fichiers statiques ne sont pas générés ou mis en cache.
Vous devez écrire manuellement les fichiers de vue statique dans le système de fichiers Commerce à l’aide de la commande décrite dans cette rubrique. Ensuite, vous pouvez restreindre les autorisations afin de limiter vos vulnérabilités et d’empêcher l’écrasement accidentel ou malveillant des fichiers.
Pour déployer des fichiers de vue statiques :
-
Connectez-vous au serveur Commerce en tant que ou passez au propriétaire du système de fichiers.
-
Supprimez le contenu de
<magento_root>/pub/static
, à l’exception du fichier.htaccess
. Ne supprimez pas ce fichier. -
Exécutez le
<magento_root>/bin/magento setup:static-content:deploy
de l’outil de déploiement de fichiers de vue statique .note info INFO Si vous activez la fusion de fichiers de vue statique dans Admin, le système de répertoires pub/static
doit pouvoir être accessible en écriture.Options de commande :
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]
Le tableau suivant explique les paramètres et valeurs de cette commande.
<languages>
en_US
.)Recherchez la liste en exécutant :
bin/magento info:language:list
--language (-l)
Par exemple :
--language en_US --language es_ES
--exclude-language
--theme <theme>
Par exemple :
--theme Magento/blank --theme Magento/luma
--exclude-theme <theme>
Par exemple,
--exclude-theme Magento/blank
--area (-a)
adminhtml
et frontend
. La valeur par défaut est all.Par exemple :
--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>
Définissez la stratégie de déploiement. N’utilisez ces options que si vous disposez de plusieurs instances locales.
- Utilisez la stratégie rapide pour réduire le temps de déploiement. Il s’agit de l’option de commande par défaut si elle n’est pas spécifiée.
- Utilisez la stratégie standard pour déployer tous les fichiers de vue statiques pour tous les packages.
- Utilisez la stratégie compactepour économiser de l’espace disque sur le serveur.
--no-parent
--force (-f)
<languages>
et --language
, <languages>
est prioritaire.Exemples
Voici quelques exemples de commandes.
Exclusion d’un thème et de la minimisation HTML
La commande suivante déploie le contenu statique pour la langue anglaise (en_US
) américaine, exclut le thème Luma fourni avec Commerce et ne minimise pas les fichiers HTML.
bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify
Exemple de sortie :
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
---
La commande suivante déploie uniquement JavaScript, avec 4 traitements, avec une stratégie de déploiement standard :
bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4
La commande suivante déploie uniquement des feuilles CSS et LESS avec 3 tâches et une stratégie de déploiement rapide :
bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3
Génération de fichiers d’affichage statiques pour un thème et une zone
La commande suivante génère des fichiers d’affichage statiques pour toutes les langues, la zone frontale uniquement, le thème Commerce Luma uniquement, sans générer de polices :
bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma
Exemple de sortie :
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
Déployer des fichiers de vue statiques sans installer Commerce
Vous pouvez exécuter le processus de déploiement dans un environnement distinct, hors production, afin d’éviter tout processus de génération sur des machines de production sensibles.
Pour ce faire, procédez comme suit :
- Exécutez
bin/magento app:config:dump
pour exporter la configuration à partir de votre système de production. - Copiez les fichiers exportés vers la base de code hors production.
- Déployer des fichiers de vue statiques :
bin/magento setup:static-content:deploy
Résolution des problèmes liés à l’outil de déploiement des fichiers de vues statiques
Installez d’abord le logiciel Commerce sinon vous ne pouvez pas exécuter l’outil de déploiement de fichiers de vues statiques.
Symptôme : l'erreur suivante s'affiche lorsque vous exécutez l'outil de déploiement de fichiers de vues statiques :
ERROR: You need to install the Commerce application before running this utility.
Solution :
Procédez comme suit :
- Installez le logiciel Commerce à l’aide de la ligne de commande.
- Connectez-vous au serveur d’applications en tant que propriétaire du système de fichiers ou passez à.
- Supprimez le contenu
<app_root>/pub/static
répertoire , à l’exception du fichier.htaccess
. Ne supprimez pas ce fichier. - Déployer des fichiers de vue statiques :
bin/magento setup:static-content:deploy
Conseil à l’intention des développeurs pour la personnalisation de l’outil de déploiement de contenu statique
Lors de la création d’une implémentation personnalisée de l’outil de déploiement de contenu statique, utilisez uniquement l’écriture de fichiers atomiques pour les fichiers qui doivent être disponibles sur le client. Si vous utilisez une écriture de fichiers non atomique, ces fichiers peuvent être chargés sur le client avec un contenu partiel.
Une des options pour le rendre atomique est d’écrire dans des fichiers stockés dans un répertoire temporaire et de les copier ou de les déplacer vers le répertoire de destination (d’où ils sont chargés sur le client) après l’écriture. Pour plus d'informations sur l'écriture dans des fichiers, voir php fwrite.