首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于根URL + baseUrl +模块路径的固定模块的RequireJS加载

基于根URL + baseUrl +模块路径的固定模块的RequireJS加载
EN

Stack Overflow用户
提问于 2013-08-22 08:02:50
回答 2查看 2.7K关注 0票数 3

嗨,我正在使用requirejs将我的javascript代码组织成AMD模块,我现在正在使用codeigniter构建一个非单一页面的网站,我所做的是我有一个默认的布局html文件,我总是调用这个文件来呈现主体的动态内容,所以我的脚本调用了requirejs并具有数据-主属性被编码在我的布局html页面上。

代码语言:javascript
代码运行次数:0
运行
复制
<script data-main="<?=base_url('assets/js/main.js');?>" src="<?=base_url('assets/js/require.js');?>"></script>

我的main.js看起来是这样的。

代码语言:javascript
代码运行次数:0
运行
复制
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(){

})

因此,当我在url上输入"localhost/ci-project/“时,它将与动态主体一起加载布局页面。在这种情况下,它工作得很好。sicne需求将正确地呈现路径“localhost/ci-project/assets/js/供应商/js文件/模块”。

但是当我将URL更改为“localhost/ci-project/迎宾/admin”时。加载模块所需做的是将baseUrl +模块路径连接到当前的URL,在本例中为‘localhost/ci-project/迎宾/admin’,结束结果如下所示:

'localhost/ci-project/welcome/admin/assets/js/vendor/module‘,这是错误的。

那么,如何配置requirejs,使其始终从根url加载,然后将baseUrl值与每个模块的路径连接起来?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-22 11:48:46

解决这个问题的方法是从服务器端变量输出baseUrl

页面中的

代码语言:javascript
代码运行次数:0
运行
复制
<script>
var require = {
    baseUrl: '<?= base_url(); ?>' // Or whatever outputs the full path to your site root
};
</script>
<script data-main="<?=base_url('assets/js/main.js');?>" src="<?=base_url('assets/js/require.js');?>"></script>

在加载require之前创建RequireJS对象允许您定义将自动获取的配置选项。

再次从require.config()内部调用main.js很好,它只需要添加附加的配置选项,但是一定要从其中删除baseUrl

票数 3
EN

Stack Overflow用户

发布于 2015-01-08 02:22:00

当我遇到导航到带有参数的路径的问题时,Simon上面的答案有所帮助--基本url的相对路径出错了。我使用asp .net mvc,但解决方案完全相同:(_Layout.cshtml)

代码语言:javascript
代码运行次数:0
运行
复制
<script>
    var require = {
        // by default, load any module IDs from
        baseUrl: '@Url.Content("~/Scripts/lib")'
}
</script>
<script data-main="@Url.Content("~/Scripts/application/app.js")" src="@Url.Content("~/Scripts/lib/require.js")"></script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18374808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档