我正在用 CodeIgniter 在后面和 Backbone/RequireJS 在前面构建一个 Web 应用程序。因此,它不是一个单页 Web 应用程序,而是仍然将 CI 用于许多控制器操作,并使用 Backbone 用于不同时间的各种视图。我有这样的 RequireJS/Backbone 设置:
<script type="text/javascript" data-main="main" src="require.js"></script>
main.js 看起来像:
require.config({
paths: {
jquery: "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min",
underscore: "libs/underscore",
backbone: "libs/backbone",
//Lots of other stuff
},
shim: {
backbone: {
deps: ["underscore", "jquery"],
}
// lots of other stuff
}
});
require(['views/app'], function(AppView){
var app_view = new AppView;
});
Main.js 加载到我的主模板中,即每个页面上,然后加载整个站点/应用程序中常见的一堆视图 - 标题、导航等。
但是在不同的页面上,除了常见的视图之外,我还想加载不同的视图。因此,例如,在一个名为“发布”的页面上——它本身几乎是一个应用程序——我这样做:
<script type="text/javascript" src="publish.js"></script>
在 main.js 之后加载,如下所示:
//publish.js
require(['views/publishview], function(PublishView){
var publishView = new PublishView;
});
基本上,它有一半的时间有效,而另一半(当我刷新时)我在所有东西上都得到 404。
那么有没有一种简洁的方法可以将我的基本需求配置用于所有内容,但在不同的时间也需要不同的部分?如果整个事情是一个 SPA,这似乎很容易做到,但对我来说,应用程序的很大一部分仍然使用 CodeIgniter。
很抱歉没有更好地表达这一点。