2016-12-19 6 views
3

Мое понимание в соответствии с this post заключается в том, что по умолчанию base href является '/'. This scotch tutorial говорит, чтобы включить эту базу HREF:Нужна ли мне база href = '/'?

<!-- ./index.html --> 
<base href="/"> 

Для основного приложения, это строго необходимо, или браузеры предполагают, что '/' является base href для относительных путей в любом случае?

ответ

6

будут ли браузеры предполагать, что '/' является базовым href для относительных путей?

Нет, они не будут.

Спецификация HTML specifies how relative URLs are resolved. Нелегко работать через спецификацию и определения, чтобы найти, что, когда относительный URL-адрес разрешен против документа, который не имеет базового URL-адреса, указанного с помощью элемента base <, эффективный («резервный») базовый URL-адрес не гарантируется /. Существует несколько альтернатив, но в обычном случае исходный URL-адрес документа берется как собственный URL документа. Как правило, это не /.

Не совсем ясно, стоит ли указывать / в качестве базового URL-адреса каждого документа. Это означает, что каждый относительный URL-адрес будет разрешаться одинаково, независимо от документа, в котором он отображается; что можно считать плюсом. С другой стороны, он отличается от поведения по умолчанию для разрешения относительных URL-адресов, что может быть источником ошибок. Конечно, если вы решите это сделать, вы должны делать это последовательно во всем приложении.

1

Основание - это место, в котором находится страница. Каждый относительный URL-адрес относится к этому base. Давайте предположим, что вы на

http://a/b/c 

Если у вас есть ссылка внутри страницы с помощью этого кода:

<a href="../d">abc</a> 

Затем, нажав на ссылку, то target будет

http://a/d 

Итак, ваш base находится на

http://a/b 

т.к. c есть внутри это. Теперь, когда вы понимаете, что такое base, посмотрите here. Вы увидите, что кроме href, вы можете установить target, а также указать, где должны открываться ссылки.

Смежные вопросы