我已经阅读了许多答案,并按照我可能的步骤(似乎对我而言)但仍然DevTools显示Backbone is not defined.
错误。
以下是我使用requirejs shim的方法。
<script data-main="js/subject_main.js" src="js/libs/require.js"></script>
subject_main.js
require.config({
paths: {
bootstrap: '../libs/bootstrap.min',
jquery: '../libs/jquery',
underscore: '../libs/underscore',
backbone: '../libs/backbone',
text: '../libs/text',
json2: '../libs/json2',
templates: '../../templates'
},
shim: {
'boostrap':{
deps: ['jquery']
},
'backbone': {
deps: ['jquery', 'underscore'],
exports: 'Backbone'
},
'underscore': {
exports: '_'
}
}
});
require(['subjects', 'json2'], function(app) {
app.initialize();
});
subjects.js
define(['jquery', 'underscore', 'backbone', 'subject_router'], function($, _, Backbone, router) {
return {
initialize: function() {
Backbone.history.start();
}
};
});
subject_router
define([
'jquery',
'underscore',
'backbone',
'models/subject_item_model',
'collections/subjects_collection',
'views/subject_view'
],function($, _, Backbone) {
var AppRouter = Backbone.Router.extend({ ... });
return new AppRouter();
});
Chrome DevTools显示以下顺序(顺序)的脚本 -
如您所见,骨干网在最后加载。我不知道出了什么问题,在哪里。
答案 0 :(得分:0)
backbone.js或者underscore.js对我来说很好看,而且确实正在加载它们!
您的开发工具中的404指的是源映射文件(underscore.min.map)。您可能想看一下这篇文章:Missing Javascript ".map" file for Underscore.js when loading ASP.NET web page。
PS:在您的subject_router代码中,传递给模块函数的参数不匹配。