Magento2没有读我的requirejs-config.js

时间:2015-12-26 16:34:02

标签: requirejs magento2

我是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没有加载。我也遵循了文档。

3 个答案:

答案 0 :(得分:14)

我发现了问题。

pub / static / _requirejs / frontend / Namespace / Theme / en_US 下,删除文件 requirejs-config.js

刷新页面,然后使用新内容重新生成页面。

答案 1 :(得分:1)

这可以帮助其他人在本地使用nginx时遇到非常类似的问题。 / static块未正确重写,需要根据此评论https://github.com/magento/magento2/issues/7869#issuecomment-268585438

添加
location /static/ {
    if ($MAGE_MODE = "production") {
      expires max;
    }

    # Remove signature of the static files that is used to overcome the browser cache
    location ~ ^/static/version {
      rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
      add_header Cache-Control "public";
      add_header X-Frame-Options "SAMEORIGIN";
      expires +1y;

      if (!-f $request_filename) {
        rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
      }
    }

    location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
      add_header Cache-Control "no-store";
      add_header X-Frame-Options "SAMEORIGIN";
      expires off;

      if (!-f $request_filename) {
         rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
      }
    }

    if (!-f $request_filename) {
      rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
    }

    add_header X-Frame-Options "SAMEORIGIN";
}

答案 2 :(得分:0)

详细说明为here

根据其他成员的要求,添加重要的位:

检查是否可以找到它试图加载到文件系统上的文件。如果存在,它将指向Web服务器配置问题。如果不是,请检查文件权限,然后进行静态内容部署。