Déploiement de fichiers d’affichage statique
La commande de déploiement des fichiers d’affichage 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 à ce qui suit :
- "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 les CSS générés à partir de LESS.
- "Vue" fait référence à la couche de présentation (mode 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 d’affichage 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 Production : les fichiers statiques ne sont ni générés ni mis en cache.
Vous devez écrire manuellement des fichiers d’affichage statique dans le système de fichiers Commerce à l’aide de la commande abordée dans cette rubrique. Ensuite, vous pouvez restreindre les autorisations afin de limiter vos vulnérabilités et d’empêcher le remplacement accidentel ou malveillant de fichiers.
Pour déployer des fichiers de vue statique :
-
Connectez-vous au serveur Commerce en tant que ou basculez vers le 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 l’outil de déploiement des fichiers d’affichage statique
<magento_root>/bin/magento setup:static-content:deploy
.note info INFO Si vous activez la fusion des fichiers d’affichage statique dans l’administrateur, le système d’annuaire pub/static
doit pouvoir être écrit.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 les 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. Utilisez ces options uniquement si vous avez plusieurs locaux.
- 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 d’affichage statique pour tous les packages.
- Utilisez la stratégie compacte pour économiser de l’espace disque sur le serveur.
--no-parent
--force (-f)
<languages>
et --language
, <languages>
a la priorité.Exemples
Voici quelques exemples de commande.
Exclusion d’un thème et d’une minification d’HTML
La commande suivante déploie le contenu statique pour la langue US English (en_US
), exclut le thème Luma fourni avec Commerce et ne réduit pas les fichiers d’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 tâches, 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 CSS et LESS avec 3 tâches, ainsi qu’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 statique pour un thème et une zone
La commande suivante génère des fichiers d’affichage statique 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 d’affichage statique sans installer Commerce
Vous pouvez exécuter le processus de déploiement dans un environnement distinct, hors production, afin d’éviter tout processus de création sur des machines de production sensibles.
Pour ce faire, procédez comme suit :
- Exécutez
bin/magento app:config:dump
pour exporter la configuration de votre système de production. - Copiez les fichiers exportés vers la base de code hors production.
- Déployer des fichiers d’affichage statique :
bin/magento setup:static-content:deploy
Dépannage de l’outil de déploiement des fichiers d’affichage statique
Installez le logiciel Commerce d’abord ; dans le cas contraire, vous ne pourrez pas exécuter l’outil de déploiement des fichiers d’affichage statique.
Symptôme : l’erreur suivante s’affiche lorsque vous exécutez l’outil de déploiement des fichiers de vue statique :
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 basculez vers.
- Supprimez le contenu du répertoire
<app_root>/pub/static
, à l’exception du fichier.htaccess
. Ne supprimez pas ce fichier. - Déployer des fichiers d’affichage statique :
bin/magento setup:static-content:deploy
Conseil à l’intention des développeurs sur la personnalisation de l’outil de déploiement de contenu statique
Lors de la création d’une mise en oeuvre 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 l’écriture de fichiers non atomiques, ces fichiers peuvent être chargés sur le client avec du contenu partiel.
L’une des options pour la rendre atomique consiste à écrire dans des fichiers stockés dans un répertoire temporaire et à les copier ou à les déplacer vers le répertoire de destination (à partir duquel ils sont chargés sur le client) une fois l’écriture terminée. Pour plus d’informations sur l’écriture dans des fichiers, voir php fwrite.