JS动态链接指向CI中的根/

时间:2015-09-04 22:41:26

标签: codeigniter codeigniter-3

我已在我的apache / localhost / ci_app /

下的子目录中设置了CI

现在我在/localhost/ci_app/assets/js/code.js下有一些JS文件

在code.js里面我动态加载脚本

(function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "/assets/js/another_script.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'my_other_script'));

在CI配置中,我有$config['base_url'] = '/ci_app/';,但每次加载页面时,我都会调用http://localhost/assets/js/another_script.js的脚本。

我需要脚本指向http://localhost/ci_app/assets/js/another_script.js

2 个答案:

答案 0 :(得分:1)

你可以用两种方式做到这一点,

你的js脚本可以调用这个函数,它会给你你想要的基本网址

(function(d, s, id){
   var js, fjs = d.getElementsByTagName(s)[0];
   if (d.getElementById(id)) {return;}
   js = d.createElement(s); js.id = id;
   js.src = getBaseUrl() + "/assets/js/another_script.js";
   fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'my_other_script'));

function getBaseUrl() {
    var l = window.location;
    var base_url = l.protocol + "//" + l.host + "/" + l.pathname.split('/')[1];
    return base_url;
}

你可以在这样的配置中更改你的base_url

$config['base_url'] = 'http://localhost/ci_app/';

它可以工作。

答案 1 :(得分:0)

您可以在页面的<base href="<?php echo base_url(); ?>">内添加<head>。这会解析您$config['base_url']设置的所有相对路径。