2013-03-11 36 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