Wie füge ich eine CSS-Datei zum Head-Block in Magento 2 hinzu [geschlossen]
-
12-12-2019 - |
Frage
Ich baue zu Lernzwecken ein Magento 2-Modul.
Ich versuche, allen konfigurierbaren Produktseiten eine CSS-Datei hinzuzufügen, aber das scheitert kläglich.
Hier ist, was ich versucht habe.
In app/code/Namespace/Module/view/frontend/layout
Ich habe diese Datei hinzugefügt: 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>
Die Layoutdatei wird berücksichtigt, aber ich erhalte in der Konsole die folgende Fehlermeldung
403 Verboten – ROOT/pub/static/frontend/Magento/blank/en_US/Namespace_Module:css/styles.css
Die in der Fehlermeldung erwähnte Datei existiert nicht (sie wird nicht generiert), selbst wenn die Originaldatei, die ich hinzufügen möchte, vorhanden ist /app/code/Namespace/Module/view/frontend/web/css/styles.css
Wenn ich das entferne Namespace_Module
Präfix aus dem <argument>
Tag enthält es ein anderes styles.css
.Der von pub/static/frontend/Magento/blank/en_US/css/styles.css
.
Was mache ich falsch?
Lösung
OK.Es ist mir ein wenig peinlich.
Das Problem lag zwischen meiner Tastatur und meinem Stuhl.
Das Trennzeichen für den Modulnamen der Ad-Datei lautet ::
nicht :
.
Ich sollte vorsichtiger sein.
Der richtige Weg, es zu tun, ist also.
<?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>
Ich sollte diese Frage löschen, da sie möglicherweise vom Thema abweicht.
Aber ich werde es am Leben lassen, da es anderen als Lernmaterial dienen kann.