HTML5 <base> 带有根相对的标签 url

HTML5 <base> Tag with root relative url

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

我在 http://goodsite.org/bob 上托管了一个网站。其他站点托管在 http://goodsite.org/others.

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

为了支持这一点,我在 header 中有一个基础 url。 <base href="/bob/">.

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

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

问题:

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

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

Does <base> tag universally support root relative urls (i.e. href="/bob/")?

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

<base href="/bob/"> 表示您希望所有路径相对 URL(即仅包含路径但 / 开头的 URL)相对于 /bob/,这样

  • <a href="foo.html"> 将指向 /bob/foo.html,与域无关。

不会调整绝对域和绝对路径链接:分别为

  • <a href="https://whosebug.com"> 仍将指向 https://whosebug.com,并且
  • <a href="/bar"> 仍将指向 /bar.

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