2013-04-10 63 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