0
加載javascript文件與RequireJS和Backbone時出現錯誤。使用Backbone widh requireJS加載JS時出錯requireJS
笨的config.php
$config['index_page'] = '';
home.php
<script data-main="<?php echo site_url('js/main.js')?>" src="<?php echo site_url('js/libs/require.js')?>"></script>
main.js
require.config({
baseUrl: "js",
paths: {
html5shiv: "libs/html5shiv",
jquery: "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min",
jqueryui: "http://code.jquery.com/ui/1.10.3/jquery-ui",
bootstrap: "libs/bootstrap.min",
tablesorter: "libs/jquery.tablesorter.min",
script: "script",
underscore: "libs/underscore.min",
backbone: "libs/backbone.min",
utils: "helpers/utils",
accountModel: "models/accountModel",
accountCollection: "collections/accountCollection",
accountRouter: "routers/accountRouter",
// Views
edit: "views/account/account_edit",
index: "views/account/account_index",
row: "views/account/account_row",
//Templates
'templates': 'templates'
},
shim: {
jqueryui: {
deps: ["jquery"],
exports: "Jqueryui"
},
tablesorter: {
deps: ["jquery"],
exports: "TableSorter"
},
bootstrap: {
deps: ["jquery"] ,
exports: "Bootstrap"
},
script: {
deps: ["jquery", "tablesorter", "jqueryui"],
exports: "Script"
},
underscore: {
exports: "_"
},
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
}
}
});
require(["backbone", "underscore", "accountCollection", "accountRouter","bootstrap", "script"],
function (Backbone, _, AccountCollection, AccountRouter) {
var accounts = new AccountCollection();
var router = new AccountRouter({accounts: accounts});
Backbone.history.start();
});
這些文件沒有裝載有:
http://localhost/project/index.php/js/collections/accountCollection.js
http://localhost/project/index.php/js/routers/accountRouter.js
http://localhost/project/index.php/js/libs/underscore.min.js
http://localhost/project/index.php/js/libs/bootstrap.min.js
http://localhost/project/index.php/js/libs/jquery.tablesorter.min.js
螢火蟲返回:404 Not Found http://localhost/project/index.php/js/collections/accountCollection.js
在我不使用主幹其他頁面,RequireJS工作得很好,並要加載的URL的JS是沒有的index.php
如果我改變main.js到:
require.config({
baseUrl: "js",
paths: {
html5shiv: "http://localhost/project/js/libs/html5shiv",
jquery: "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min",
jqueryui: "http://code.jquery.com/ui/1.10.3/jquery-ui",
bootstrap: "http://localhost/project/js/libs/bootstrap.min",
tablesorter: "http://localhost/project/js/libs/jquery.tablesorter.min",
script: "http://localhost/project/js/scripts/script",
underscore: "http://localhost/project/js/libs/underscore.min",
backbone: "http://localhost/project/js/libs/backbone.min",
utils: "http://localhost/project/js/helpers/utils",
//Files Facebook Collector
accountModel: "http://localhost/project/js/models/accountModel",
accountCollection: "http://localhost/project/js/collections/accountCollection",
accountRouter: "http://localhost/project/js/routers/accountRouter",
// Views
edit: "http://localhost/project/js/views/account/account_edit",
index: "http://localhost/project/js/views/account/account_index",
row: "http://localhost/project/js/views/account/account_row",
//Templates
'templates': 'templates'
},
shim: {
jqueryui: {
deps: ["jquery"],
exports: "Jqueryui"
},
tablesorter: {
deps: ["jquery"],
exports: "TableSorter"
},
bootstrap: {
deps: ["jquery"] ,
exports: "Bootstrap"
},
script: {
deps: ["jquery", "tablesorter", "jqueryui"],
exports: "Script"
},
underscore: {
exports: "_"
},
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
}
}
});
只有不加載:http://localhost/project/index.php/js/text.js
(用於加載模板)。
require(["backbone", "underscore", "accountCollection", "accountRouter","bootstrap", "script"],
function (Backbone, _, AccountCollection, AccountRouter) {
var accounts = new AccountCollection();
var router = new AccountRouter({accounts: accounts});
Backbone.history.start();
});
謝謝。
您有試過絕對路徑的baseUrl?如下所示:「/ project/js」 –