Accepted solution is right, but I copy here the full @AntonGuz answer from the "Stack Overflow" (very well explained):
Yes, there is. You can look in pub static to see how path to static
asset constructed.
How it works
Every asset is accessible from the page by itenter code here
s
"RequireJS ID". It similar to real path, but varied.
For example file
http://magento.vg/static/adminhtml/Magento/backend/en_US/Magento_Theme/favicon.ico
.
It's real path is
/app/code/Magento/Theme/view/adminhtml/web/favicon.ico
. It's
RequireJS ID is Magento_Theme/favicon.ico
. This means that file
could be accessible via require("text!Magento_Theme/favicon.ico")
or
similar command.
You can find that RequireJS ID consist with module name and useful
part of path (after folder web
).
How can I replace a file
So you have file
vendor/magento/module-payment/view/frontend/web/template/payment/cc-form.html
On the page it loaded with src as
http://magento.vg/static/frontend/Magento/luma/en_US/Magento_Payment/template/payment/cc-form.html
So its RequireJS ID is
Magento_Payment/template/payment/cc-form.html
Side note: Inside UI components stuff it equals to
Magento_Payment/payment/cc-form
. Words "template" and ".html" are
added automatically.
And now you can replace this file for application via RequireJS config
var config = {
"map": {
"*": {
"Magento_Payment/template/payment/cc-form.html":
"<OwnBrand>_<OwnModule>/template/payment/cc-form.html"
}
}
};
This code snippet you place in requirejs-config.js
file in your
module. That is all.
Perhaps it will help somebody to understand as it occurs.