重複の可能性あり:
2 つのスラッシュで始まる URI はどのように動作するのでしょうか?
現在のページのプロトコル(スキーム)を保存するためにプロトコル(スキーム)を省略した絶対URL
スクリプトおよびリンク タグの // の省略形ですか? 誰かこれを見た人、使ったことがある人はいますか?
私は情報源を調べていたHTML5 リセット私が気づいたとき次の行:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
なぜ URL は 2 つのスラッシュで始まるのでしょうか? これは の省略形ですかhttp://
?
ベストアンサー1
「2 つのスラッシュ」は、「現在のページを読み込むために使用されているプロトコルを使用して、参照されているリソースを要求する」ことを表す一般的な省略形です。
「プロトコル相対URL」として最もよく知られているものは、要素(例のJSファイルなど)がコンテキストhttp
またはhttps
コンテキストのいずれかから提供および/または要求される場合に特に便利です。プロトコル相対URLを使用すると、実装を回避できます。
if (window.location.protocol === 'http:') {
myResourceUrl = 'http://example.com/my-resource.js';
} else {
myResourceUrl = 'https://example.com/my-resource.js';
}
コードベース全体に タイプのロジックを追加します (もちろん、 のサーバーが と の両方を通じてコンテンツを提供できることを前提としていますexample.com
) 。http
https
実際の顕著な例としては、Magento 1.X E-Commerce エンジンが挙げられます。パフォーマンス上の理由から、カテゴリ ページと製品ページではhttp
デフォルトで plain が使用され、チェックアウトはhttps
有効になっています。
一部のリソース(サイトのヘッダーにあるプロモーションバナーなど)が非プロトコル相対URL(つまりhttp://example.com/banner.jpg
)を介して参照されている場合、https
有効なチェックアウトに到達した顧客は、かなり不親切な
「このページには安全でない要素があります」
プロンプト - これはビジネスにとって必ずしも良いことではないと推測できます。
ただし、前述のリソースが 経由で参照されている場合//example.com/banner.jpg
、ブラウザは、プレーンな http 製品/カテゴリ ページと https 対応のチェックアウト フローの両方で適切なプロトコルを使用してリソースをロードします。
tl;dr: http/https が混在する環境になる可能性がわずかでもある場合は、リソースを参照するには、リソースを提供するホストが http と https の両方をサポートしていると仮定して、ダブル スラッシュ/プロトコルの相対 URL を使用します。