Magento 2에서 레이아웃 파일을 재정의하는 데 문제가 있음


9

Magento 2.02를 사용하고 있습니다. Luma를 기반으로하는 'cff'라는 자체 테마를 만들었습니다.

catalog.compare.link블록 을 제거하려고합니다 .top.links

이 블록의 레이아웃은

/vendor/magento/module-catalog/view/frontend/layout/default.xml

그리고 내가 추가하면

<referenceBlock name="catalog.compare.link" remove="true" />

해당 파일에서 예상대로 '제품 비교'텍스트가 top.links 블록에서 사라집니다.

그러나 벤더 파일을 변경해서는 안된다는 것을 알고 있습니다. 따라서 default.xml제거 코드를 배치 하기 위해 내 파일을 만들 올바른 폴더를 찾고 있습니다.

설명서 및 온라인의 모든 곳을 보았지만이 정보를 찾을 수 없습니다. 여러 위치를 시도했지만 아무도 작동하지 않습니다. 나는 이것이 작동해야한다고 생각했지만 어느 쪽도 그렇지 않습니다.

/app/design/frontend/cff/cff/Magento_Catalog/layout/default.xml

누군가 재정의 레이아웃을 어디로 가야하는지 알려줄 수 있습니까?

이것은 재정의 레이아웃 내의 코드입니다. default.xml

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="catalog.compare.link" remove="true" />
    </body>
</page>

우선 모든 pls를 최신 버전의 Magento2 (2.1.5)로 업그레이드하면 정상적으로 작동합니다. 또한 개발 환경에있는 경우 정적 컨텐츠 배포, 즉 프로덕션 용을 사용하지 말고 개발시 symlink를 사용해야합니다. 또한 magento의 루트 나 관리자로부터 캐시 "php bin / magento cache : flush"를 제거 / 새로 고치는 것을 잊지 마십시오
Vlad Patru

답변:


1

비교 참조 컨테이너를 제거해보십시오. compare-link-wrapper

<referenceContainer name="compare-link-wrapper" remove="true" />

레이아웃 xml을 통해 요소를 제거하는 방법에 대한 작은 문서가 있지만 여기에서 찾을 수 있습니다. http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/layouts/xml-instructions.html

해당 파일이 어디에 있어야하는지에 대한 귀하의 질문과 관련하여 : default.xml을 테마 Magento_Catalog/layout/default.xml또는Magento_Theme/layout/default.xml

방금 제공 한 것과 동일한 코드를 사용하려고 시도했지만 비교 블록을 제거하는 데 아무런 문제가 없었습니다. 캐시를 지우고 pub 디렉토리에 아무것도 게시 할 필요가 없다는 것을 다시 확인했습니다.

업데이트 4/7/16 :

디렉토리를 수동으로 삭제 한 pub/static후 다음 명령을 실행 하여 pub 디렉토리를 새로 고칠 수 있습니다 .

setup:static-content:deploy

타일러 안녕하세요, 첫 번째 문장을 이해하지 못합니다. '참조 컨테이너 비교'란 무엇입니까? 제공 한 코드는 /vendor/magento/module-catalog/view/frontend/layout/default.xml에 나타나지 않습니다. 제안한 두 위치에서 파일을 시도했지만 작동하지 않습니다. 그 이유가 생각 나십니까? 마지막으로, 'pub 디렉토리에 무엇인가를 게시'한다는 것은 무엇을 의미합니까? magento가 해당 폴더의 모든 것을 처리하지 않아야합니까? 어둡게해서 죄송합니다. 학습 곡선은이 부분에서 피가 가파르고 ...
jodaki

당신의 답변 타일러 감사합니다 말을 잊어 미안 해요! 도와 주셔서 감사합니다 ..
jodaki

@jo 추가했습니다
Tyler Craft

0

테마 폴더에서 먼저 Magento_Theme / layout 폴더 로 이동하십시오 .

그런 다음 layout / override / base 폴더 를 작성 하고 공급 업체의 default.xml 파일 을 추가하고 추가하십시오 <referenceBlock name="catalog.compare.link" remove="true" />.


무시할 필요가 없으며, 최신 버전의 Magento로 업데이트하여 이미
시도한

0

제품 목록 페이지에서 referenceContainer sidebar.additional 을 제거하려고했습니다 . 나는 다음 절차를 수행했다.

  1. 방금 <referenceContainer name="sidebar.additional">\ vendor \ magento \ module-catalog \ view \ frontend \ layout \ default.xml에서 복사 했습니다.
  2. 그리고 아래에 넣으십시오 <body>. 코드는 <referenceContainer name="sidebar.additional" remove="true"></referenceContainer>app \ design \ frontend \ theme \ theme-name \ Magento_Theme \ layout \ default.xml에 있어야합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.