5

请帮助我了解<base>标签的 href 属性的功能。

我有一个网站托管在http://goodsite.org/bob. 其他网站托管在http://goodsite.org/others.

我计划将我的应用程序移至http://bettersite.org/bob.

为了支持这一点,我的标题中有一个基本网址。 <base href="/bob/">.

我的链接看起来像这样:<a href="thatonething.img">That one thing</a>

正如希望的那样,我看到了预期的链接(例如"http://goodsite.org/bob/thatonething.img"

问题:

<base>标签是否普遍支持根相对网址(即href="/bob/")?

这似乎在我的测试中有效,但我在阅读规范时遇到了更多麻烦。更一般地说,我想知道我是否滥用了这个标签。

4

1 回答 1

10

<base>标签是否普遍支持根相对网址(即href="/bob/")?

是的,<base>接受域相关(绝对路径)的 URL,并将正确解析它们相对于主机名。

<base href="/bob/">意味着您希望所有路径相对 URL(即仅包含路径但以开头的 URL /)都相对于/bob/,例如

  • <a href="foo.html">将指向/bob/foo.html,无论域如何。

Domain-absolute 和 path-absolute 链接不会被调整:分别,

  • <a href="https://stackoverflow.com">仍将指向https://stackoverflow.com, 和
  • <a href="/bar">仍会指向/bar.

只要这是您希望路径相关链接的行为方式,您就不会以<base>这种方式滥用该元素。与往常一样,在使用该<base>元素时,最好不时测试您的链接,以确保它们仍然指向正确的 URL。

于 2018-07-31T19:01:15.980 回答