Допустимо ли заменить http: // на // в скрипте < script src = & ldquo; http: // & hellip; & rdquo; & gt ;?

У меня есть следующий элемент:

<script type="text/javascript" src="https://cdn.example.com/js_file.js"></script>

В этом случае сайт HTTPS, но сайт также может быть только HTTP. (Файл JS находится в другом домене.) Мне интересно, допустимо ли для удобства сделать следующее:

<script type="text/javascript" src="//cdn.example.com/js_file.js"></script>

Мне интересно, допустимо ли удалить http: или https:?

Кажется, это работает везде, где я тестировал, но есть ли случаи, когда это не работает?

454
задан 06.05.2020, 13:30

2 ответа

Относительный URL без схемы (http: или https:) допустимо, на RFC 3986: "Универсальный идентификатор ресурса (URI): Универсальный Синтаксис", Раздел 4.2 . Если клиент дросселирует на нем, то это - отказ клиента, потому что они не выполняют синтаксис URI, указанный в RFC.

Ваш пример допустим и должен работать. Я использовал тот относительный метод URL сам на в большой степени переданных сайтах и имел нулевые жалобы. Кроме того, мы тестируем наши сайты в Firefox, Safari, IE6, IE7 и Opera. Эти браузеры все понимают тот Формат ссылки.

384
ответ дан 06.05.2020, 13:34
  • 1
    " Если клиент дросселирует на нем, то it' s client' s дают сбой потому что they' ре, не выполняющее синтаксис URI, определяется в RFC." - я думаю, что это - интересный вопрос - но следует ли клиент за " spec" едва хороший стандарт для ли it' s мудрый, чтобы сделать в веб-приложении. – Matt Howell 06.05.2020, 13:34
  • 2
    google doesn' t используют это потому что сетевой стек Windows XP doesn' t поддерживают SNI. Посмотрите здесь: blogs.msdn.com/b/ieinternals/archive/2009/12/07/… . Поэтому разрешение сценария аналитики Google быть загруженным через https на IE6 привело бы к ошибке сертификата. – Eilistraee 06.05.2020, 13:34
  • 3
    @Darryl Hein, я верю Google, использует document.location.protocol метод, потому что это также изменяет URL, не только схему. Они переходят в SSL.google-analytics.com , если документ использует https схему. – Nick Meldrum 06.05.2020, 13:35
  • 4
    Интересно почему google doesn' t используют это для аналитики. Они используют document.location.protocol метод. – Darryl Hein 06.05.2020, 13:35
  • 5
    Хотя эта техника, кажется, мало известна, она поддерживается во всех веб-браузерах. Это просто работает отлично. – Ned Batchelder 06.05.2020, 13:36

Это совершенно допустимо для бросания протокола. Спецификация URL очень соглашалась с этим в течение многих лет, и я должен все же найти браузер, который не понимает это. Я не знаю, почему эта техника не более известна; это - идеальное решение тернистой проблемы пересечения границ HTTP/HTTPS. Больше здесь: переходы Http-https и относительные URL

16
ответ дан 06.05.2020, 13:31
  • 1
    Я предпочитаю использовать модули по помощникам, потому что они - истинное OO, я могу включать/расширять их по желанию. Я могу сгруппировать материал вместе, который имеет фактическое значение. Помощники являются просто блоками. Я рекомендую только использовать тех для связанных с представлением методов. Не уверенный, что Вы имеете в виду с you'll get to the point ..... – nathanvda 11.12.2019, 10:02

Теги

Похожие вопросы