Backbone.js 使用requirejs加载backbonejs和下划线JS时出现问题

Backbone.js 使用requirejs加载backbonejs和下划线JS时出现问题,backbone.js,underscore.js,requirejs,Backbone.js,Underscore.js,Requirejs,我在用RequireJS中的shim选项加载这个库时遇到问题(可能是因为我在那个库上的背景不好)。我试图查看文档并查看其他页面,但问题仍然存在 这是我的应用程序文件夹结构: index.html js/main.js js/app/router.js js/app/app.js js/views/homeview.js js/libs/backbone/backbone-1.0.0.js js/libs/underscore/underscore-1.5.1.js js/libs/jquery/

我在用RequireJS中的shim选项加载这个库时遇到问题(可能是因为我在那个库上的背景不好)。我试图查看文档并查看其他页面,但问题仍然存在

这是我的应用程序文件夹结构:

index.html
js/main.js
js/app/router.js
js/app/app.js
js/views/homeview.js
js/libs/backbone/backbone-1.0.0.js
js/libs/underscore/underscore-1.5.1.js
js/libs/jquery/jquery-1.10.2.js
js/libs/require/require-2.1.8.js
所有文件都从index.html开始:

    <!DOCTYPE html>
    <html>
        <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="viewport" content="width=device-width, user-scalable=no" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>App</title>
    </head>
    <body>
        <div class="page">
            Loading...
        </div>
        <script data-main="js/main" src="js/libs/require/require-2.1.8.js"></script>
    </body>
</html>
定义库的路径以及非AMD库的垫片选项

然后是app.js

define([
        'app/router',
], function(Router) {
    var initialize = function() {
        //var router = new Router();
        //router.initialize();
            Router.initialize();
    };

    return {
        initialize: initialize,
    };
});
然后是router.js:

define([
        'jquery',
        'underscore',
        'backbone',
        'app/views/homeview',
], function($, _, Backbone, HomeView) {
    var AppRouter = Backbone.Router.extend({
        routes: {
            '': 'home',
        }
    });

    var initialize = function() {
        var appRouter = new AppRouter();
        var homeView = new HomeView();

        appRouter.on('route:home', function() {
            userListView.render();
            console.log('We have loaded the home page.');
        });

        Backbone.history.start();
    };

    return {
        initialize: initialize,     
    };
});
现在我遇到了一个问题,因为查看chrome开发者工具中的网络选项卡时,只能加载jquery,不能加载主干或下划线

最后,由于它定义了对视图的引用,因此加载homeview.js

define([
        'jquery',
        'underscore',
        'backbone',
        'libs/text!app/tpl/home.html',
], function($, _, Backbone, HomeTpl) {
    var homeView = Backbone.View.extend({
        el: '.page',
        render: function() {
            //var self = this;
            //users.fetch({
            //  success: function() {
                    var template = _.template(HomeTpl, {});
                    //self.$el.html(template);                  
                    this.$el.html(template);
            //  }
            //});
        },
    }); 

    return homeView;
});
问题是,因为在第var homeView=Backbone.View.extend行({显示错误:“uncaughttypeerror:cannotreadproperty'View'of undefined”),但我认为这是因为Backbone从未加载

var homeView = Backbone.View.extend({
有人能告诉我我做错了什么吗?我一整天都在看代码和几页纸,我想不出答案。提前谢谢你,并为这个长长的问题道歉,我看到很多人都有同样的问题,也许答案也能帮助其他人。

找不到任何错误,但你不需要加载ap路径中的p模

paths: {
  app: 'app', // remove

默认的baseUrl是js,所以app.js确实在app/app.js中,因为我使用了“app/app”。事实上,app.js可以加载,我发布的所有源代码也可以加载,甚至jquery。但是backcone和下划线不能加载。所以,要明确的是,这里编写的代码工作得非常好(经过我对帖子的更正)。显然,所有的问题都是缓存问题,而不是重新加载更新的库。处理许多工具时会发生的事情:你可能认为问题出在某个地方,但它出在另一个地方。谢谢!
paths: {
  app: 'app', // remove