如何在javascript中获取基本网址JavaScript 中的基本 URL
我正在用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,一个变量,从到的URL片段似乎很方便document.base_url
protocol
index.php
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('/') + '/';
}