Можно ли использовать тег <base> для протокола?
URL-адреса, относящиеся к протоколу, позволяют включать ресурсы (изображения, CSS, JS) с использованием той же схемы (HTTP или HTTPS) в качестве исходного запроса, сохраняя при этом только одна копия кэшированной страницы. Затем пользовательский агент решает, использовать или не использовать HTTP или HTTPS (на основе URI страницы HTML).
Мы используем тег <base href=".." />
и относительные URL-адреса для ресурсов в HTML.
Пример:
<html>
<head>
<base href="#" onclick="location.href='http://example.com'; return false;" />
<script src="js/foo.js" type="text/javascript" />
</head>
Есть ли способ, которым я могу объединить это? URL-адреса, относящиеся к протоколу, в теге <base/>
?
<base href="//example.com" />
Мои эксперименты esp. с Internet Explorer работал иногда, а иногда и нет (иногда даже ссылки меню не работали, иногда изображения CSS не загружались).
Есть ли что-нибудь, чтобы я мог заставить его работать или рекомендовать, если это хорошая идея? Мне не удалось найти информацию о таких сайтах, как caniuse.com.
Ответы
Ответ 1
Мы просто попытались это сделать с помощью сайта, а искатель Google не понимал, как использовать относительный путь протокола в качестве базы, и мы закончили тем, что он индексировал многие сломанные URL-адреса.
Я не уверен, что использование относительного пути протокола здесь является допустимым значением для базового пути. Браузер, похоже, хорошо понимает относительную базу протокола, но может быть, что они просто более снисходительны к тому, что они будут принимать.
Ответ 2
Настройка javascript для меня работает:
<head>
<script>
var str = document.location.protocol + '//' + document.location.host + '/';
document.write('<base href="'+str+'">');
</script>
</head>