戴夫沃德说,
它并不完全是轻量级读取,但RFC 3986的4.2节提供了完全限定协议(HTTP或HTTPS)的完全限定URL.当省略URL的协议时,浏览器将使用基础文档的协议.
简而言之,这些"无协议"URL允许这样的引用在您尝试使用的每个浏览器中工作:
//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js一开始看起来很奇怪,但这种"无协议"URL是引用通过HTTP和HTTPS提供的第三方内容的最佳方式.
这肯定会解决我们在HTTP页面上看到的一堆混合内容错误 - 假设我们的资产可通过HTTP和HTTPS获得.
这是完全跨浏览器兼容吗?还有其他警告吗?
方案相对URL(网络路径引用)是我刚刚发现的 - 你没有指定URL的方案,它从当前上下文中选择它.
例如:
如果当前方案是HTTPS或不是,则<img src="//domain.com/img.png" />解析为.https://domain.com/img.pnghttp://domain.com/img.png
这似乎是一种非常简单的方法来解决在SSL页面上调用外部脚本或图像的麻烦问题,而不会引起页面上某些内容不安全的可怕错误.
好处似乎很明显,但我似乎无法找到的是关于此的大量信息,并且想知道是否有人有任何关于方案相对URL(好或坏)的经验或参考?
虽然我试图发现是否有任何浏览器导致问题(我已经成功使用IE6-8,Chrome和Firefox),我也有兴趣了解是否有任何人有使用此功能的不同经验语言.例如,如果你Response.Redirect在ASP中发布一个方案相对URL ,它会起作用吗?
我们在http [s]://A.example.com/上有一个网站,它引用了http [s]上的一些资源(JS和CSS)://A.example.com/
如果在主要站点A正在使用时引用资源时使用相同的方案,则有意义并避免一些浏览器警告.站点A使用PHP,因此我们可以以编程方式检测当前方案(http或https)并将其插入页面的标题中.
但是,我们发现只使用'//'代替方案也可以.
因此,无论我们是使用http还是https访问网站A,网站A都可以在我们尝试的所有浏览器中引用"//B.example.com/theme/main.css"而不会出现问题.
我的问题是:这是一个有效的URL吗?它似乎工作,但我找不到其他人这样做,我找不到任何建议或推荐的例子.