[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

Déploiement de fichiers de vue statiques

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

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.

WARNING
Mode Développeur uniquement : lorsque vous installez ou activez un nouveau module, il se peut que celui-ci charge de nouveaux JavaScript, CSS, mises en page, etc. Pour éviter tout problème lié aux fichiers statiques, vous devez nettoyer les anciens fichiers afin de 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 manières. Pour plus d’informations voir la rubriqueNettoyer le cache de fichiers statiques .

Pour déployer des fichiers de vue statiques :

  1. Connectez-vous au serveur Commerce en tant que ou passez au 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 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.

Option
Description
Obligatoire ?
<languages>
Liste séparée par des espaces de codes de langue ISO-639 pour lesquels des fichiers de vue statiques doivent être générés. (La valeur par défaut est en_US.)
Recherchez la liste en exécutant : bin/magento info:language:list
Non
--language (-l)
Générer des fichiers uniquement pour les langues spécifiées. La valeur par défaut, sans option spécifiée, consiste à 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érer des fichiers pour les codes de langue spécifiés. La valeur par défaut, sans option spécifiée, consiste à n’exclure rien. Vous pouvez spécifier le nom d’un code de langue ou une liste de codes de langue séparés par des virgules. La valeur par défaut est aucune.
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 aucune.
Par exemple, --exclude-theme Magento/blank
Non
--area (-a)
Générer des fichiers uniquement pour les zones spécifiées. La valeur par défaut, sans option spécifiée, consiste à 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, consiste à n’exclure rien. La valeur par défaut est aucune.
Non
--jobs (-j)
Activez le traitement parallèle en utilisant le nombre de tâches spécifié. La valeur par défaut est 0 (ne pas exécuter de 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 déploiement, mais n’ont pas de personnalisations.
Non
--content-version=CONTENT-VERSION
Une version personnalisée du contenu statique peut être utilisée en cas d’exécution du déploiement sur plusieurs nœuds afin de garantir que la version du contenu statique est identique et que la mise en cache fonctionne correctement.
Non
--no-javascript
Ne déployez pas 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 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 HTML.
Non
-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.
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> 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 :

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

  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 passez à.
  3. Supprimez le contenu <app_root>/pub/static répertoire , à l’exception du fichier .htaccess. Ne supprimez pas ce fichier.
  4. 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.

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