Переопределить HTML-файл в пользовательском модуле - magento2

Я разрабатываю пользовательский модуль для метода оплаты в magento2. В настоящее время я использую cc-form.html из каталога поставщика и модуль работает нормально. смотрите ниже путь.

продавец / Magento / модуль оплата / вид / интерфейс / веб / шаблон / оплаты / куб.см-form.html

Есть ли способ переопределить HTML-файл?

Любая помощь будет оценена. Спасибо!

1 ответ

Решение

Да, есть. Вы можете посмотреть в пабе static, чтобы увидеть, как строится путь к статическому ресурсу.

Как это устроено

Каждый актив доступен со страницы имenter code heres "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

Примечание: внутри компонентов пользовательского интерфейса оно равно Magento_Payment/payment/cc-form, Слова "template" и ".html" добавляются автоматически.

И теперь вы можете заменить этот файл для приложения через конфигурацию RequireJS

var config = {
  "map": {
    "*": {
      "Magento_Payment/template/payment/cc-form.html": 
          "<OwnBrand>_<OwnModule>/template/payment/cc-form.html"
    }
  }
};

Этот фрагмент кода вы помещаете в requirejs-config.js файл в вашем модуле. Это все.

Другие вопросы по тегам