2013-04-10 72 views
0

当添加堆栈中的模块在我的路由器文件中的测试程序,它抛出一个错误404装载Backbone.js的添加模块导致额外的HTTP请求

我想不出是什么原因,但一个额外的http get被添加请求js/Backbone.js,然后抛出一个404,因为我只有我的库在js/libs文件夹中。

可能是什么问题?

// index.html 
<!DOCTYPE html> 
<html> 
<head> 
<title>Starting Require</title> 
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"/> 
<script data-main="js/main" src="js/libs/require.js"></script> 
</head> 
<body> 
<div id="content"> 
</div> 
</body> 



// main.js 
requirejs.config({ 
paths : { 
    'jquery' : 'libs/jquery-1.8.2.min', 
    'underscore' : 'libs/underscore', 
    'backbone' : 'libs/backbone', 
    'backstack' : 'https://github.com/pwalczyszyn/backstack/blob/master/backstack' 
}, 
shim: { 
    'backbone': { 
     deps: ['underscore', 'jquery'], 
     exports: 'Backbone' 
    }, 
    'backstack': { 
     deps: ['backbone', 'underscore', 'jquery'], 
    }, 
    'underscore': { 
     exports: '_' 
    } 
} 
}); 
require([ 
    'app', 
    ], function(App){ 
    App.initialize(); 
}); 


// app.js 
define([ 
'jquery', 
'underscore', 
'backbone', 
'router' 
], function($, _, Backbone, Router){ 
var initialize = function(){ 
Router.initialize(); 
}; 
return { 
initialize: initialize 
}; 
}); 




// router.js 
define([ 
'jquery', 
'underscore', 
'backbone', 
'backstack' 
], function($, _, Backbone, Backstack) { 

var AppRouter = Backbone.Router.extend({ 
routes: { 
    '': 'welcome' 
} 
}); 

var initialize = function(){ 
var app_router = new AppRouter; 
app_router.on('route:welcome', function(){ 
    $('#content').html('Hello World!'); 
}); 
    }; 
    return { 
    initialize: initialize 
    }; 
}); 

回答

1

backstack uses the Backbone module name,不backbone

这个小提琴只使用大写的Backbone模块名称,没有额外的模块负载。

http://jsfiddle.net/MUSBk/

否则,你可以定义一个别名(省略模块名,如果你在一个名为Backbone.js文件的地方) - http://jsfiddle.net/3UXGZ/1/

define('Backbone', ['backbone'], function (Backbone) { 
    return Backbone; 
}); 

我不知道,你可以用你的path配置将新的Backbone模块指向您现有的Backbone JS,因为这可能会将相同的文件加载到Backbone的第二个实例,这可能会导致问题。

+0

谢谢保罗我想我会去别名,这使得它更明显,大写对我来说太微妙了。 – 2013-04-11 18:57:06