如何将 css 文件添加到 Magento 2 的 head 块中 [关闭]
-
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>
我应该删除这个问题,因为它可能偏离主题。
但我会让它继续存在,因为它可以作为其他人的学习材料。