requirejs从不同路径加载文件

时间:2018-08-24 13:14:57

标签: safari requirejs require

我有一个网页,其中已通过脚本标记-

包含了requirejs
<script data-main="/media/course-book-app/courses.require.main.js" src="/media/common/vendor/requirejs/require.js"></script>

在Safari浏览器上,出现类似以下错误: enter image description here

是什么原因导致此问题? 这个问题在Safari上非常常见,而在chrome上则很少。

Testing URL

2 个答案:

答案 0 :(得分:0)

来自https://requirejs.org/docs/errors.html#scripterror(在错误中链接到该位置)。按照说明进行操作,并查看导致错误的脚本

  

在脚本中触发script.onerror函数时会发生这种情况   浏览器。这通常表示存在JavaScript语法错误或   运行脚本的其他执行问题。要解决此问题,请检查   在脚本调试器中生成错误的脚本。

     

此错误可能不会在IE中显示,而只会在其他浏览器中显示,而是在   在IE中,当您看到“脚本”时,可能会看到No define call for ...错误。   错误”。这是由于IE在检测脚本错误方面的怪癖。

答案 1 :(得分:0)

这是正确使用requirejs的方法。这样可以确保在加载任何模块之前加载配置-

define('requireconfig', function(){
    require.config({
        paths: {
          "jquery":    "/common/vendor/jquery/jquery-1.9.1.min",
          "backbone":  "/common/vendor/backbone/backbone.min-1.1.2",
          "underscore":  mediaPath + "/common/vendor/underscore/underscore.min-1.7.0"
        },
        shim: {
           backbone : {
            deps: ["jquery","underscore"],
            exports: "Backbone"
        },
        }
    });    
});

define('main', ['requireconfig'], function () {
    'use strict';
});

// loading main module which loads the requirejs configuration

requirejs(['main'],()=>{
   requirejs(['jquery'], ($)=>{//jquery loaded});
}, ()=>{//error loading module})