HTML5 <base> тег с корневым относительным URL

Пожалуйста, помогите мне понять функциональность <base> атрибут hre f тега.

У меня есть веб-сайт на http://goodsite.org/bob, другие сайты размещены на http://goodsite.org/others,

Я планирую переместить мое заявление в http://bettersite.org/bob,

Для поддержки этого у меня есть базовый URL в моем заголовке. <base href="/bob/">,

Мои ссылки выглядят примерно так: <a href="thatonething.img">That one thing</a>

Как я и надеялся, я вижу ссылки, как и ожидалось (например, "http://goodsite.org/bob/thatonething.img")

Вопрос:

Есть ли <base> тег универсально поддерживает корневые относительные URL (т.е. href="/bob/" )?

Это, кажется, работает в моем тестировании, но у меня есть немного больше проблем при чтении спецификаций. В целом, я хочу знать, не использую ли я этот тег.

1 ответ

Решение

Есть ли <base> тег универсально поддерживает корневые относительные URL (т.е. href="/bob/" )?

Да, <base> принимает относящиеся к домену (абсолютные пути) URL-адреса и корректно разрешает их относительно имени хоста.

<base href="/bob/"> означает, что вам нужны все относящиеся к пути URL-адреса (т. е. URL-адреса, содержащие только путь, но не начинающиеся с /) быть по отношению к /bob/ такой, что

  • <a href="foo.html"> будет указывать на /bob/foo.html независимо от домена.

Доменные и абсолютные пути не будут корректироваться: соответственно,

  • <a href="https://stackru.com"> все еще будет указывать на https://stackru.com, а также
  • <a href="/bar"> все еще будет указывать на /bar,

Пока вы намерены вести себя по ссылкам, относящимся к пути, вы не злоупотребляете <base> элемент таким образом. Как всегда, при использовании <base> element хорошая идея время от времени проверять ваши ссылки, чтобы убедиться, что они по-прежнему указывают на правильные URL-адреса.

Другие вопросы по тегам