我当前正在开发的模块的目标是添加一个称为“ opengraph_image”的自定义图像类型。我通过可以正常运行的InstallData.php脚本添加了新的EAV属性。现在,我登录到Magento2后端并更改产品时,可以在上载或编辑产品图像时选择图像类型“ opengraph_image”。
但是,在前端我想显示此图像。因此,我在模块中创建了一个etc / view.xml文件,其内容如下:
<?xml version="1.0"?>
<view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Esites_SEO:etc/custom.xsd">
<media>
<images module="Magento_Catalog">
<image id="opengraph_image" type="opengraph_image">
<width>265</width>
<height>265</height>
</image>
</images>
</media>
</view>
但是现在我得到以下错误:
Invalid XML in file /var/www/html/vhosts/magento2/app/code/Esites/SEO/etc/view.xml:
Element 'image', attribute 'type': [facet 'enumeration'] The value 'opengraph_image' is not an element of the set {'thumbnail', 'small_image', 'image', 'swatch_image', 'swatch_thumb'}.
Line: 5
Element 'image', attribute 'type': 'opengraph_image' is not a valid value of the local atomic type.
Line: 5
原因是它似乎未加载位于以下app/code/Esites/SEO/etc/custom.xsd
位置的我的custom.xsd :我在其中定义opengraph_image。相反,它似乎只是加载了默认的XSD文件:vendor/magento/framework/Config/etc/view.xsd
我的custom.xsd的内容是该原始view.xsd的副本(出于测试目的),我在第75行添加了以下内容:
<xs:enumeration value="opengraph_image"/>
如果我在原始view.xsd文件中包含上面的行,那么前端确实可以正常工作。我遵循了以下文档:http : //devdocs.magento.com/guides/v2.0/extension-dev-guide/build/XSD-XML-validation.html,我的路径是根据该页面上的信息构建的。缓存被多次清除。
我想念什么?
module="Magento_Catalog"
为module="Esites_SEO"
吗?