Déploiement de fichiers d’affichage statique

WARNING
Toutes les commandes de l’interface de ligne de commande du Magento doivent être exécutées par le propriétaire du système de fichiers.

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.

WARNING
Mode développeur uniquement : lorsque vous installez ou activez un nouveau module, il peut charger de nouveaux JavaScript, CSS, mises en page, etc. Pour éviter des problèmes avec les fichiers statiques, vous devez nettoyer les anciens fichiers pour vous assurer d’obtenir toutes les modifications pour le nouveau module. Vous pouvez nettoyer les fichiers d’affichage statique générés de plusieurs façons. Pour plus d’informations, consultez la rubrique Nettoyage du cache de fichiers statiques pour plus d’informations.

Pour déployer des fichiers de vue statique :

  1. Connectez-vous au serveur Commerce en tant que ou basculez vers le propriétaire du système de fichiers.

  2. Supprimez le contenu de <magento_root>/pub/static, à l’exception du fichier .htaccess. Ne supprimez pas ce fichier.

  3. 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.

Option
Description
Obligatoire ?
<languages>
Liste de codes de langue ISO-639 séparés par des espaces pour lesquels générer des fichiers d’affichage statique. (La valeur par défaut est en_US.)
Recherchez la liste en exécutant : bin/magento info:language:list
Non
--language (-l)
Générez des fichiers uniquement pour les langues spécifiées. La valeur par défaut, sans option spécifiée, est de générer des fichiers pour tous les codes de langue ISO-639. Vous pouvez spécifier le nom d’un code de langue à la fois. La valeur par défaut est all.
Par exemple : --language en_US --language es_ES
Non
--exclude-language
Générez des fichiers pour les codes de langue spécifiés. La valeur par défaut, sans option spécifiée, est de n’exclure rien. Vous pouvez spécifier le nom d’un code de langue ou d’une liste de codes de langue séparés par des virgules. La valeur par défaut est none.
Non
--theme <theme>
Thèmes pour lesquels déployer du contenu statique. La valeur par défaut est all.
Par exemple : --theme Magento/blank --theme Magento/luma
Non
--exclude-theme <theme>
Thèmes à exclure lors du déploiement de contenu statique. La valeur par défaut est none.
Par exemple, --exclude-theme Magento/blank
Non
--area (-a)
Générez des fichiers uniquement pour les zones spécifiées. La valeur par défaut, sans option spécifiée, est de générer des fichiers pour toutes les zones. Les valeurs valides sont adminhtml et frontend. La valeur par défaut est all.
Par exemple : --area adminhtml
Non
--exclude-area
Ne générez pas de fichiers pour les zones spécifiées. La valeur par défaut, sans option spécifiée, est de n’exclure rien. La valeur par défaut est none.
Non
--jobs (-j)
Activez le traitement parallèle à l’aide du nombre spécifié de tâches. La valeur par défaut est 0 (ne pas exécuter dans les processus parallèles). La valeur par défaut est 0.
Non
--symlink-locale
Créez des liens symboliques pour les fichiers de ces paramètres régionaux, qui sont transmis pour le déploiement, mais sans personnalisation.
Non
--content-version=CONTENT-VERSION
La version personnalisée du contenu statique peut être utilisée si vous exécutez le déploiement sur plusieurs noeuds afin de vous assurer que la version du contenu statique est identique et que la mise en cache fonctionne correctement.
Non
--no-javascript
Ne pas déployer de fichiers JavaScript
Non
--no-css
Ne déployez pas de fichiers CSS.
Non
--no-less
Ne déployez pas de fichiers LESS.
Non
--no-images
Ne déployez pas d’images.
Non
--no-fonts
Ne déployez pas de fichiers de polices.
Non
--no-html
Ne déployez pas de fichiers d’HTML.
Non
--no-misc
Ne déployez pas d’autres types de fichiers : MD, JBF, CSV, JSON, TXT, HTC, SWF
Non
--no-html-minify
Ne minimisez pas les fichiers d’HTML.
Non
-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.
Non
--no-parent
Ne générez pas de fichiers pour les thèmes parents du thème actuel. Il est vivement recommandé d’utiliser cet indicateur si vous n’utilisez pas explicitement le thème parent du thème actuel que vous essayez de déployer. Cela augmente considérablement la vitesse du processus. Cet indicateur est disponible dans Commerce 2.4.2
Non
--force (-f)
Déployez des fichiers dans n’importe quel mode. (par défaut, l’outil de déploiement de contenu statique ne peut être exécuté qu’en mode de production. Utilisez cette option pour l’exécuter en mode par défaut ou en mode développeur).
Non
INFO
Si vous spécifiez des valeurs pour <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 :

  1. Exécutez bin/magento app:config:dump pour exporter la configuration de votre système de production.
  2. Copiez les fichiers exportés vers la base de code hors production.
  3. 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 :

  1. Installez le logiciel Commerce à l’aide de la ligne de commande.
  2. Connectez-vous au serveur d’applications en tant que propriétaire du système de fichiers ou basculez vers.
  3. Supprimez le contenu du répertoire <app_root>/pub/static, à l’exception du fichier .htaccess. Ne supprimez pas ce fichier.
  4. 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.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c