用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 尝试将鼠标悬停在链接上,浏览器将向您显示路径的确切位置。

用HTML指定文档库URL 元件

所有相对路径最终将是:

<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>标记的更多信息:

翻译自: https://www.hongkiat.com/blog/html-base-element/