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-адреса.