可能重复:
Is it valid to replace with // in a <script src=“…”>?
Links start with two slashes
我现在在几个网站上看到了这个。一个简单的例子是查看维基百科登陆页面的来源:
<link rel="shortcut icon" href="//en.wikipedia.org/favicon.ico" />
<link rel="apple-touch-icon" href="//upload.wikimedia.org/wikipedia/commons/f/f1/Wikipedia-mobile-icon.png" />
<link rel="copyright" href="//creativecommons.org/licenses/by-sa/3.0/" />
是否有一些与//
启动外部链接的标准?这样做是为了避免必须下载额外的https?:
并保存一些字符,因为大多数浏览器足够聪明,可以自己添加其余的方案吗?或者这是合法的事情,也许是出于其他原因?
答案 0 :(得分:7)
这通常称为协议相对URL,允许浏览器使用与加载页面相同的协议下载资源。因此,如果用户通过https
网址加载了网页,则//
指定的资源将通过https
加载,否则会通过常规http
加载。
它可以帮助您防止的一件事是旧版IE中用户不友好的消息,说明该页面包含安全和非安全资源。
Paul Irish撰写了一篇关于此事的好文章:
答案 1 :(得分:0)
这允许您在不指定http或https的情况下下载资源;它将使用您当前正在使用的任何内容。
答案 2 :(得分:0)
不在URL中指定方案将导致浏览器采用当前方案。你可以在这里阅读一篇很好的文章:
http://paulirish.com/2010/the-protocol-relative-url/
这是它的主要好处:
如果浏览器正在通过HTTPS查看当前页面,那么 它将使用HTTPS协议请求该资产,否则它将会 通常*使用HTTP请求它。这可以防止这个糟糕的“本页 包含安全和非安全项“IE中的错误消息, 将所有资产请求保存在同一协议中。
有一些怪癖......
在
<link>
或@import
上用于样式表,IE7和IE8时 下载文件两次。然而,所有其他用途都很好。
...但一般来说,你可以安全地使用它。