用HTML指定文档库URL 元件
网站建立有一系列链接,指向页面和图像和样式表之类的资源。 有两种方法可以指定链接到这些源的URL :使用绝对路径或相对路径。
绝对路径指的是特定的目的地,通常以域名(以及HTTP)开头,例如www.domain.com/destination/source.jpg
。 相对路径相反:链接目标取决于根位置,或者在大多数情况下取决于您网站的域名。
典型的相对路径如下所示:
<img src="/assets/img/image.png" alt="">
例如,如果您的网站域是hongkiat.com
则图像路径将解析为hongkiat.com/assets/img/image.png
。 如果您已经开发网站一段时间,则应该了解这一点。
但是大多数人可能还没有听说过<base>
元素。 自HTML4以来,这个HTML标签就已经存在,但在野外对其实现的了解却很少。 W3C将此元素描述为:
“基本元素允许作者为解决相对URL的目的指定文档基本URL ,并为后续超链接的目的指定默认浏览上下文的名称。”
此<base>
元素基本上为网页中的相对路径确定基本URL。 您可以将其指向其他位置,而不是依赖于根目录或网站的域,例如您资源位于CDN(内容交付网络)中的URL。 让我们看看它是如何工作的。
使用基础元素
<base>
是在<head>
内的<head>
<meta>
和<link>
标记旁边定义的。 给定以下示例,我们将基本URL设置为Google。
<base href="http://hongkiat.maxcdn.com/assets/">
此规范将影响文档中的所有路径,包括在href
属性和图像的src
中指定的路径。 因此,假设我们在文档集中有一个样式表,图像和链接,并且具有这样的相对路径,例如:
<link rel="stylesheet" href="path/main.css"> <a href="path/page/sub-page/">Anchor Link</a> <img src="path/image.jpg">
即使我们的网页位于demo.hongkiat.com
下,相对路径也将引用< hongkiat.maxcdn.com
<base>
标签中指定的基本路径,指向hongkiat.maxcdn.com
。 尝试将鼠标悬停在链接上,浏览器将向您显示路径的确切位置。
所有相对路径最终将是:
<link rel="stylesheet" href="http://hongkiat.maxcdn.com/assets/path/main.css"> <a href="http://hongkiat.maxcdn.com/assets/path/page/sub-page/">Anchor Link</a> <img src="http://hongkiat.maxcdn.com/assets/path/image.jpg">
设置默认链接目标
除了定义基本URL, <base>
标记还可以通过target
属性设置默认链接目标。 假设您希望在浏览器的新标签页中打开文档中的所有链接,用_blank
设置target
,就像这样。
<base href="http://hongkiat.maxcdn.com/assets/" target="_blank">
局限性
但是, <base>
标记在某些情况下有几个警告:
首先, <base>
浏览器支持很棒; 它可以在IE6中使用。 但是,IE6认为它需要一个结束标记</base>
。 如果未指定结束标记,则可能导致文档中出现层次结构问题。 一种简单快速的方法来解决这一问题是通过添加</base>
注释中关闭, <!--[if lte IE 6]></base><![endif]-->
。
如果将#
与<base>
结合使用以链接到文档中的各个部分,则Internet Explorer 9中可能会遇到问题。InternetExplorer 9会重新加载页面,而不是跳转到引用的部分。
此外,空白的href
将产生基本URL,而不是链接到页面所在的当前目录(这是默认的浏览器行为),这可能会导致意外的引用问题。
包起来
<base>
是一种方便HTML功能,可以简化Web文档中的链接引用。 请谨慎使用标签,以最大程度地减少陷阱。 请遵循以下这些参考,以获取有关<base>
标记的更多信息: