Magento 2结帐索引xml未覆盖


11

我正在使用空白主题为基础创建Magento 2主题。现在的问题是Magento 2空白主题删除了http://www.yourdomain/checkout 页面上的顶部标题,搜索栏和迷你购物车

vendor\magento\theme-frontend-blank\Magento_Checkout\layoutcheckout_cart_index.xml

他们已经使用删除了

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="minicart" remove="true"/>
        <referenceContainer name="header.panel" remove="true"/>
        <referenceBlock name="top.search" remove="true"/>
        <referenceBlock name="catalog.compare.link" remove="true"/>
        <referenceBlock name="catalog.topnav" remove="true"/>
        <referenceContainer name="footer-container" remove="true"/>
    </body>
</page>

如果我在此处覆盖相同主题,则无法正常工作。我想要的是不删除那些元素,所以我必须在这里覆盖XML文件

app\design\frontend\NAMESPACE\themename\Magento_Checkout\layout\checkout_index_index.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="minicart" remove="false"/>
        <referenceContainer name="header.panel" remove="false"/>
        <referenceBlock name="top.search" remove="false"/>
        <referenceBlock name="catalog.compare.link" remove="false"/>
        <referenceBlock name="catalog.topnav" remove="false"/>
        <referenceContainer name="footer-container" remove="false"/>

    </body>
</page>

我写过remove="false"不要从结帐中删除那些元素的信息。

但这仍然是删除主题的主意吗?

清除缓存并重新编制索引后,我进行了检查,但无法正常工作

Answers:


15

要覆盖布局XML文件(而不是扩展文件),您需要将其添加到稍有不同的目录中,更多信息可以在官方文档中找到

<theme_dir>
  |__/<Namespace_Module>
    |__/layout
      |__/override
         |__/theme
            |__/<Parent_Vendor>
               |__/<parent_theme>
                  |--<layout1>.xml
                  |--<layout2>.xml

因此,对于您需要覆盖Magento \ Blank的情况,它将是:

app\design\frontend\NAMESPACE\themename\Magento_Checkout\layout\override\theme\Magento\blank\checkout_index_index.xml

如果无法覆盖主题,请确保不需要覆盖来自模块本身而不是主题XML的布局。为此,请阅读上面链接的文档中的“覆盖基本布局”部分。


已被标记为正确的
答案

如果收到以下消息,该怎么办:覆盖视图文件...与任何文件都不匹配。
Vasilii Burlacu

它在2.06版上是这样设置的,但是在升级到2.1之后,我收到了此消息。将文件移动到“布局”文件夹有效。
Vasilii Burlacu

1
@VasiliiBurlacu-我还没有机会尝试2.1,但是根据文档,覆盖XML文件的方法在2.1上是相同的-devdocs.magento.com/guides/v2.1/frontend-dev-guide/layouts /…
Ben Crook

@ Ben-Space48我不是说覆盖方法改变了,而是写了关于给出的错误的信息。我checkout_index_index.ml就在您发帖说的地方,但是升级到2.1并运行setup:upgradesetup:static-content:deployMagento FE后,正在打印带有给定消息的异常。
Vasilii Burlacu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.