覆盖自定义模块中的html文件 - magento2

时间:2016-05-25 07:06:03

标签: magento2 magento-2.0 magento2.0.2

我正在为magento2中的支付方式开发自定义模块。目前我正在使用供应商目录中的 cc-form.html ,模块工作正常。见下面的路径。

  

供应商/的magento /模块付款/视图/前端/网络/模板/支付/ CC-form.html

有没有办法覆盖html文件?

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:15)

是的,有。您可以在pub static中查看如何构建静态资产的路径。

如何运作

每个资产都可以通过enter code here的“RequireJS ID”从页面访问。它类似于真实路径,但各不相同。

例如文件http://magento.vg/static/adminhtml/Magento/backend/en_US/Magento_Theme/favicon.ico

它的真实路径是/app/code/Magento/Theme/view/adminhtml/web/favicon.ico 它的RequireJS ID是Magento_Theme/favicon.ico。这意味着可以通过require("text!Magento_Theme/favicon.ico")或类似命令访问该文件。

您可以发现 RequireJS ID 包含模块名称和路径的有用部分(在文件夹web之后)。

如何替换文件

所以你有文件
vendor/magento/module-payment/view/frontend/web/template/payment/cc-form.html

在页面上加载src为
http://magento.vg/static/frontend/Magento/luma/en_US/Magento_Payment/template/payment/cc-form.html

所以它的RequireJS ID是
Magento_Payment/template/payment/cc-form.html

附注:在UI组件内部,它等于Magento_Payment/payment/cc-form。单词“template”和“.html”会自动添加。

现在您可以通过RequireJS config

替换此文件以进行申请
var config = {
  "map": {
    "*": {
      "Magento_Payment/template/payment/cc-form.html": 
          "<OwnBrand>_<OwnModule>/template/payment/cc-form.html"
    }
  }
};

此代码段放在模块中的requirejs-config.js文件中。就是这样。