使用HTML <base>元素指定文档根URL
这篇文章由 DeathGhost 编辑,发布于
通常Web页面创建链接资源(页面、样式表、图片等系列),一般情况下我们会通过绝对路径或相对路径链接到这些资源文件,使其可访问。那么我们今天看看HTML中<base>元素作用。
绝对路径是特定指向资源,通常以域名(http/https)开头,如同http://www.deathghost.cn/public/images/avatar.jpg
这般;而相对路径则取决于你的根位置或当前域名下。
犹如:
<img src="/public/images/avatar.jpg" alt="avatar"/>
这个问题都是众所周知,无需多言。
但是,我们往往在创建文档时可能很少注意<base>
元素,这个一直存在,我们在创建基础文档却很少用或很少看到;单页面应用上如Angular创建时会在根文档上默认创建此标签,大家不妨看看项目里的index文件。
而<base>
元素的作用就是:允许我们在处理相对URL
时指定其源目标路径,默认其上下文目标路径。
示例
我们在文档head
元素包裹中添加设置一个<base>
元素指向
<base href="http://www.deathghost.cn/">
然后再body
内容中添加
<a href="b.html">URL</a>
鼠标移到页面链接上则可以看到其地址为:
http://www.deathghost.cn/b.html
若无head
中设置,则会显示文档所在目录地址
file:///C:/Users/DeathGhost/Desktop/b.html
我们可以通过JS脚本去查询document.baseURI
,如果文档中不包含<base>
标签,baseURI
默认为 document.location.href
。
另外注意一点是,<base>
元素属于一个空元素,因此其没有技术标签且位于文档head
元素中只可读取一个,多设无意。
使用 <base>
标签后浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>
、<img>
、<link>
、<form>
标签中的 URL。