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.