我是Magento2的新手,并试图弄清楚RequireJS在Magento中的运作方式.
这是我的情况:
我有以下模块:
app/code/Mymodule/Test/view/frontend/requirejs-config.js
以下是此文件的内容:
var config = { map: { '*': { jQuery110: "Mymodule_Test/js/jquery-1.10.2", jqueryNoConflict: 'Mymodule_Test/js/jquery.no-conflict', flexslider: 'Mymodule_Test/js/jquery.flexslider-min', header: 'Mymodule_Test/js/store/header' } } };
我的主题是在这个位置:
app/design/frontend/Mycompany/Basic
我的Javascripts位于以下位置:
app/code/Mymodule/Test/view/frontend/web/js/jquery.no-conflict.js app/code/Mymodule/Test/view/frontend/web/js/jquery.flexslider-min.js app/code/Mymodule/Test/view/frontend/web/js/store/header.js
在PHTML文件中:
app/code/Mymodule/Test/view/frontend/templates/home.phtml
我添加了以下内容:
require(['jqueryNoConflict', 'flexslider'],function($, flexslider){ (function($) { $(window).load(function () { $('.flexslider').flexslider(); }); })(jQuery); });
当我在浏览器中检查我的页面时,路径出现404错误:
http://mag2.com.local/pub/static/frontend/Mycompany/Basic/en_US/flexslider.js
但是,如果我将require []行更改为:
require(['Mymodule_Test/js/jquery.no-conflict', 'Mymodule_Test/js/jquery.flexslider-min'],function($, flexslider){ (function() { $(window).load(function () { $('.flexslider').flexslider(); }); })(jQuery); });
文件正在加载.
我也清除了缓存,我的主题是正确的,我执行了命令:
php bin/magento setup:static-content:deploy
所以,我无法弄清楚为什么我的requirejs-config.js没有加载.我也遵循了文档.
我发现了这个问题.
在pub/static/_requirejs/frontend/Namespace/Theme/en_US下,删除文件requirejs-config.js.
刷新页面,将使用新内容再次生成页面.