我建立了一个网站与 CodeIgniter,我有各种资源,我加载与 Base _ url辅助函数喜欢这样
<link rel="stylesheet" type="text/css" href="'.base_url('assets/css/themes/default.css').'" id="style_color"/>
网站(www.mysite.com)
<link rel="stylesheet" type="text/css" href="http://www.mysite.com/assets/css/themes/default.css" id="style_color"/>
然后我可以像下面这样在 javascript 中将这个资源与另一个资源交换
$('#style_color').attr("href", "assets/css/themes/" + color_ + ".css");
它会尝试不使用 php 生成的绝对路径来加载资源,所以我的解决方案是在每个带有 php 的页面中添加一个这样的虚拟标记
<div id="base_url" class="'.base_url().'"></div>
然后我将 javascript 行修改为
$('#style_color').attr("href", $('#base_url').attr("class") + "assets/css/themes/" + color_ + ".css");
它确实可以工作,但是看起来一点也不优雅,所以,如果您能帮助我从 javascript 或其他解决方案中生成这个基本 URL,我将非常感激,谢谢:)
我更喜欢仅使用 Javascript 的解决方案,因为我使用的是 CodeIgniter,所以使用带有从 protocol
到 index.php
的 URL 段的 document.base_url
变量似乎很方便
document.base_url = base_url('index.php');
函数 base_url()
是
function base_url(segment){
// get the segments
pathArray = window.location.pathname.split( '/' );
// find where the segment is located
indexOfSegment = pathArray.indexOf(segment);
// make base_url be the origin plus the path to the segment
return window.location.origin + pathArray.slice(0,indexOfSegment).join('/') + '/';
}