您好我正在使用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值与每个模块的路径一起?