我已在我的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
答案 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']
设置的所有相对路径。