Comment ajouter un fichier CSS au bloc head dans Magento 2 [fermé]
-
12-12-2019 - |
Question
Je construis un module Magento 2 à des fins d'apprentissage.
J'essaie d'ajouter un fichier CSS à toutes les pages de produits configurables mais j'échoue lamentablement.
Voici ce que j'ai essayé.
Dans app/code/Namespace/Module/view/frontend/layout
J'ai ajouté ce fichier : catalog_product_view_type_configurable.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../Magento/Core/etc/page.xsd">
<referenceBlock name="head">
<block class="Magento\Theme\Block\Html\Head\Css" name="namespace-module-css">
<arguments>
<argument name="file" xsi:type="string">Namespace_Module:css/styles.css</argument>
</arguments>
</block>
</referenceBlock>
</page>
Le fichier de layout est pris en compte mais j'obtiens l'erreur suivante dans la console
403 Interdit - ROOT/pub/static/frontend/Magento/blank/en_US/Namespace_Module:css/styles.css
Le fichier mentionné dans le message d'erreur n'existe pas (il n'est pas généré) même si le fichier d'origine que j'essaie d'ajouter existe dans /app/code/Namespace/Module/view/frontend/web/css/styles.css
Si je supprime le Namespace_Module
préfixe du <argument>
tag, il comprend un autre styles.css
.Celui de pub/static/frontend/Magento/blank/en_US/css/styles.css
.
Qu'est-ce que je fais mal?
La solution
D'accord.Je suis un peu gêné.
Le problème était entre mon clavier et ma chaise.
Le séparateur du fichier publicitaire du nom du module est ::
pas :
.
Je devrais être plus prudent.
La bonne façon de procéder est donc la suivante.
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../Magento/Core/etc/page.xsd">
<referenceBlock name="head">
<block class="Magento\Theme\Block\Html\Head\Css" name="namespace-module-css">
<arguments>
<argument name="file" xsi:type="string">Namespace_Module::css/styles.css</argument>
</arguments>
</block>
</referenceBlock>
</page>
Je devrais supprimer cette question car elle peut sembler hors sujet.
Mais je le laisserai vivre car il pourra servir de matériel d’apprentissage pour d’autres.