您好我正在使用requirejs將我的JavaScript代碼組織到AMD模塊中,我正在構建一個非單頁網站,現在使用codeigniter,我做的是我有一個默認的佈局HTML文件,我總是調用渲染身體的動態內容,所以我的腳本調用requirejs並具有data-main屬性編碼在我的佈局HTML頁面上。RequireJS根據ROOT URL + baseUrl +模塊路徑加載模塊
<script data-main="<?=base_url('assets/js/main.js');?>" src="<?=base_url('assets/js/require.js');?>"></script>
和我的main.js看起來像這樣。
requirejs.config({
baseUrl: "assets/js",
paths: {
jquery: 'vendor/jquery',
bootstrap: 'vendor/bootstrap',
datatables: 'vendor/jquery.dataTables'
},
shim: {
jquery: { exports: '$' },
datatables: { deps: ['jquery'] }
}
});
requirejs(['bootstrap','datatables'], function(){
})
所以當我在我的網址「localhost/ci-project /」上輸入時,它會將佈局頁面與動態主體一起加載。在這種情況下,它工作正常。 sicne requirejs會正確渲染路徑「localhost/ci-project/assets/js/vendor/[js file/module]」
但是當我更改URL時,'localhost/ci-project/welcome/admin 」。加載模塊的要求是將baseUrl +模塊路徑連接到當前URL(在本例中爲「localhost/ci-project/welcome/admin」),結果如下所示:
'localhost/ci -project/welcome/admin/assets/js/vendor/[module]'這是錯誤的。
那麼我怎樣才能配置requirejs總是加載從根url,然後連接baseUrl值與每個模塊的路徑一起?