最佳答案
http://paulirish.com/2010/the-protocol-relative-url/
协议相对URL
October 27th,2010
Author : Paul Irish
有这个小技巧,你可以逃脱,这将节省你一些头痛:
logo.png">
如果浏览器通过HTTPS查看当前页面,那么它将使用HTTPS协议请求该资产,否则它通常会*通过HTTP请求它.这可以防止IE中的“此页面包含安全和非安全项目”错误消息,将所有资产请求保留在同一协议中.
*当然,如果您在本地查看文件,它将尝试使用file://协议请求该文件.
我们在HTML5 Boilerplate中使用这个技巧,以便从Google CDN中获得jQuery的聪明请求:
从技术上讲,根据RFC 3986,这被称为“网络路径引用”.哦,如果你想要真正正确,在谈论URL时,你将使用术语“scheme”而不是“protocol”.
这个技巧在CSS中也可以正常工作:
.omgomg { background: url(//websbestgifs.net/kittyonadolphin.gif); }
…假设您指向的网站在HTTP和HTTPS上都可以使用此资产.
警告:在< link>上使用时或@import为样式表,IE7和IE8下载文件两次.然而,所有其他用途都很好.
请问miketaylr,ralphholzmann,annevk对此有什么看法,以及ajaxian,我认为我在4年前学到了它?也许?
2011.01.23:但是……在谷歌分析片上使用这个怎么样?
是的,当然,不会那么好..所以我与谷歌分析javascript首席开发人员(上帝,我喜欢在谷歌工作),看看我们是否可以做到这一点..事实证明我们做不到. IE6中存在一个边缘错误导致对话框爆炸…在某些安全设置下(不确定它们是否为默认值)在请求形成非”sl’子域时.截图在这里.如果您不关心IE6,请随意从GA片段中删除40个字节.否则您将需要该三元运算符.