http://paulirish.com/2010/the-protocol-relative-url/
имеет отличную статью по этой самой проблеме.Включено здесь:
URL, относящийся к протоколу
27 октября 2010 г.
Автор: Пол Ирриш
Есть небольшая хитростьэто поможет вам избежать головной боли:
<img src="//domain.com/img/logo.png">
Если браузер просматривает эту текущую страницу через HTTPS, он запросит этот ресурс по протоколу HTTPS, в противном случаеобычно * запрашивают его по HTTP.Это предотвращает появление этого ужасного сообщения об ошибке «Эта страница содержит как защищенные, так и незащищенные элементы» в IE, сохраняя все ваши запросы активов в рамках одного протокола.
* Конечно, если вы просматриваете файл локально,он попытается запросить файл с протоколом file: //.
Мы используем этот трюк в HTML5 Boilerplate для умного запроса jQuery с Google CDN:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
Технически это называется «ссылкой на сетевой путь» согласно RFC 3986. Да, и если вы хотите быть по-настоящему правильным, вы будете использовать термин «схема» вместо «протокол», когда говорите об URL-адресах.
Этот прием также хорошо работает в CSS:
.omgomg { background: url(//websbestgifs.net/kittyonadolphin.gif); }
… при условии, что на сайте, на который вы указываете, этот ресурс доступен как по HTTP, так и по HTTPS.
Предупреждение: при использовании на<link>
или @import
для таблицы стилей, IE7 и IE8 загружают файл дважды.Тем не менее, все остальные варианты применения вполне хороши.
Спасибо miketaylr, ralphholzmann, annevk за ум на этом и ajaxian, где, как мне кажется, я выучил это 4 года назад?возможно?
2011.01.23: Но .. как насчет использования этого в фрагменте Google Analytics?Да, конечно, это было бы неплохо .. Поэтому я работал с ведущим разработчиком javascript в Google Analytics (Боже, мне нравится работать в Google), чтобы посмотреть, сможем ли мы это сделать ... Оказывается, мы не можем.В IE6 есть ошибка в пограничном регистре, из-за которой диалоговое окно взрывается ... при некоторых настройках безопасности (не уверены, являются ли они значениями по умолчанию) при запросе из поддоменов не-'sss'.скриншот здесь.Поэтому не стесняйтесь брать 40 байтов из своего фрагмента GA, если вам не нужен IE6 ... в противном случае вам понадобится этот троичный оператор.:)