Как добавить файл CSS в главный блок в Magento 2 [закрыто]
-
12-12-2019 - |
Вопрос
Я создаю модуль Magento 2 в учебных целях.
Я пытаюсь добавить файл CSS на все настраиваемые страницы продукта, но у меня ничего не получается.
Вот что я попробовал.
В app/code/Namespace/Module/view/frontend/layout
Я добавил этот файл: 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>
Файл макета принят во внимание, но я получаю следующую ошибку в консоли
403 Запрещено — ROOT/pub/static/frontend/Magento/blank/en_US/Namespace_Module:css/styles.css
Файл, упомянутый в сообщении об ошибке, не существует (он не создается), даже если исходный файл, который я пытаюсь добавить, существует в /app/code/Namespace/Module/view/frontend/web/css/styles.css
Если я удалю Namespace_Module
префикс из <argument>
тег, он включает в себя другой styles.css
.Тот из pub/static/frontend/Magento/blank/en_US/css/styles.css
.
Что я делаю не так?
Решение
Хорошо.Я немного смущен.
Проблема была между моей клавиатурой и стулом.
Разделитель имени модуля в рекламном файле: ::
нет :
.
Мне следует быть осторожнее.
Итак, правильный способ сделать это.
<?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>
Мне следует удалить этот вопрос, так как он может не по теме.
Но я оставлю его в живых, поскольку он может послужить учебным материалом для других.