2013-03-11 66 views
0

所以http://cdnjs.com/和我的一些同行建議我們在資源前面使用//。這個術語或技術叫做什麼?據我瞭解,目的是保留httphttps。然而,當我想谷歌說yepnope的兼容性,我該怎麼稱呼它?資源前面的名稱或術語是什麼?

+0

'protocol'短。 – ppeterka 2013-03-11 14:46:01

+2

協議相對URL – bUKaneer 2013-03-11 14:46:55

+0

http://tools.ietf.org/html/rfc3986#section-4.2 – PeeHaa 2013-03-11 14:47:58

回答

3

這是一個「相對URL」在這種情況下  —,沒有協議一部分的URL(和因此使用的協議從它的父文檔),就像/foo.html是不帶任何協議或服務器名部件相對URL(和因此使用其父文檔的協議和服務器)。

協議相關URL的用途是它們可以在httphttps文檔之間移植(並且比較短一點)。所以,如果您有:

<link rel="stylesheet" href="//cdnjs.cloudflare.com/etc.css"> 

... http://example.com在頁面上的URL擴展到

http://cdnjs.cloudflare.com/etc.css

...但如果它是https://example.com在頁面上,它擴展爲

https://cdnjs.cloudflare.com/etc.css

...並且您沒有從瀏覽器中獲得「混合安全和不安全的內容」警告。

一個輕微的缺點是,如果你使用你直接從文件系統打開的文件做一些快速和骯髒的地方測試,他們的協議是file:,所以URL最終被

file://cdnjs.cloudflare.com/etc.css

...這可能不是指您的計算機上有效的資源(並導致在SO上的問題)。

更多關於我的博客:Skipping the protocol

+0

所以聽起來像這個詞特別是我提到的是'protocol relative url'? – Maslow 2013-03-11 15:04:51

+0

@Maslow:如果你想成爲那個特定的人,可能是的。我們通常不會針對其他類型的相對URL(「服務器相對URL」,「路徑相對URL」等)進行具體說明,我們只稱它們爲「相對URL」。但是,基本上。 :-) – 2013-03-11 15:15:13