Javascript 安魂曲http://requirejs.org/docs/errors.html#scripterror

Javascript 安魂曲http://requirejs.org/docs/errors.html#scripterror,javascript,requirejs,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 t

我正在尝试获得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文件:


我终于成功了。 在我的app.js中,它应该是“['Scripts/sandbox.js']”,而不是“['Scripts/sandbox']”。 希望这能帮助其他任何有同样问题的人

  • 首先,您应该将所有
    /Scripts/*
    更改为
    Scripts/*
  • 第二件事是,您已经将data main设置为
    Scripts/sandbox
    ,也就是说,您的baseUrl设置为
    Scripts/
    。因此,您的
    app.js
    应该如下所示:
require([“沙盒”],函数(沙盒){
沙盒。showName('John');

});RequireJS文档很清楚,您不应该在模块名称的末尾添加
.js
。然后我不知道为什么它现在可以工作。这就是我在app.js中使用沙盒模块的方式:require(['Scripts/sandbox.js'],function(sandbox){sandbox.showName(“Jack”)});在扩展名为.js的情况下,我在您的回答和评论中注意到的每一件事情都有效,您的模块名为
“Scripts/sandbox.js”
,而在您的问题中则是
“/Scripts/sandbox”
。注意你的问题中有前导的
/
,答案中没有。你真的只是添加了
.js
,还是还添加了一个前导的
/
?谢谢你的指点。一开始我并没有意识到这一点,因为我一直在四处玩耍,试图找出可能出现的问题。我一定是想都没想就把它拿走了。是的,如果我放回前导/它不起作用,我相信你应该使用
define
而不是
require