Да, есть. Вы можете посмотреть в пабе 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
Примечание: внутри компонентов пользовательского интерфейса это равно
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
файл в вашем модуле. Это все.
Возможно, это поможет кому-то понять, как это происходит.