requirejs http://requirejs.org/docs/errors.html#scripterror

时间:2015-09-10 23:10:24

标签: javascript requirejs

我正在尝试使用require.js,这对我来说是新的,但我不能让它工作。在为初学者学习了一些简单的教程之后,我开始创建我的第一个(相当简单的项目)。

我正在使用visual studio 2013(因为我是.net人) 这是我的文件结构的快速方法

./content
    /*a bunch of css files*
./Scripts
    /jquery-1.9.1.js
    /sandbox.js  (!! my library !!)

.index.html (on the root)
.app.js (on the root)

这是我的模块:sandbox.js

//sandbox.js
require.config({
    paths:{
       "jquery":"/Scripts/jquery-1.9.1"
    }
});

define(["jquery"], function($){

       var show_name = function(n){
           alert(n);
       };

       return{
          showName : display_name
       }   

}); 

现在在app.js中我使用了模块sandbox.js。这是如何

// app.js
require(["/Scripts/sandbox"], function(sandbox){
    sandbox.showName('John');    
}); 

最后在index.html中,我加载了require.js文件:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <script src="/Scripts/require.js" data-main="/Scripts/sandbox"></script>
    <script src="app.js"></script>
</body>
</html>

但是当我运行此代码时,我收到了错误

0x800a139e - JavaScript运行时错误:脚本错误:/ Scripts / sandbox http://requirejs.org/docs/errors.html#scripterror

app.js

中发生此错误
require(['/Scripts/sandbox'], function (sandbox) {
    sandbox.showName("John");
});

显然,我使用模块sandbox.js的方式有问题。但我无法弄清楚错误是什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

  • 首先,您应该将所有/Scripts/*更改为Scripts/*
  • 第二件事是,您已将data-main设置为Scripts/sandbox,即您的baseUrl设置为Scripts/。所以你的app.js应该是这样的:

require(["sandbox"], function(sandbox){
    sandbox.showName('John');
});

您的sandbox.js应该是:

require.config({
    paths:{
       "jquery":"jquery-1.9.1"
    }
});

define(["jquery"], function($){

       var show_name = function(n){
           alert(n);
       };

       return{
          showName : display_name
       }   

});