현재 개발중인 모듈의 목표는 "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
그 이유는 opengraph_image를 app/code/Esites/SEO/etc/custom.xsd
정의하는 위치에 내 custom.xsd를로드하지 않는 것 같습니다 . 대신 기본 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"
?