布局可以被视为核心组件之一,因为它使用 XML 文件来表示网页设计的结构,其中适当地显示了用户界面控件。当您想使用自定义扩展调整网页而不弄乱 Magento 核心文件中的内容时,在这种情况下覆盖本机布局文件将是您的最佳选择。

此外,在Magento 2中,并非所有布局自定义都可以通过扩展布局来执行。如果定制量太大,最好使用覆盖。覆盖布局意味着将使用您在主题中创建的新文件,而不是基本布局文件的父主题布局文件中的布局文件。

现在让我们详细了解如何在 Magento 2 中覆盖本机布局文件

Magento 2 覆盖本机布局文件

特别是,要覆盖 Magento 基本布局文件,您需要在下面提到的位置创建一个布局文件。.xml

<theme_dir>
  |__/<Namespace_Module>
    |__/layout
      |__/override
         |__/base
           |--<layout1>.xml
           |--<layout2>.xml

找到文件后,以下布局将被该文件覆盖: <module_dir>/view/frontend/layout/<layout1>.xml <module_dir>/view/frontend/layout/<layout2>.xml

Magento 2 覆盖主题布局

另一方面,要覆盖主题布局,您可以重复上述步骤。但是,这次您的新布局文件必须位于另一个位置,即:

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

以下文件将被覆盖: <parent_theme_dir>/<Namespace>_<Module>/layout/<layout1>.xml <parent_theme_dir>/<Namespace>_<Module>/layout/<layout2>.xml

请记住,您的新布局文件的名称需要与您要覆盖的文件的名称相同。