戴夫沃德说,
它并不完全是轻量级读取,但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 //example.com/script.js将指向http://example.com/script.js或者https://example.com/script.js取决于URL是否来自http或https URL.例如,包含来自https页面的http脚本或图像可能是一个安全问题,因此这解决了这一问题,而无需在代码中进行协议检测.
我的问题是,它有什么样的浏览器/操作系统支持?在生产中使用是否安全?这肯定会让事情变得容易一些.
简单的例子和测试:http: //codetester.org/916c6916
编辑:只是一个跟进,我已经使用这个为我公司的广告服务器生产许多东西,现在几年没有问题.
我在许多地方看到了以下逻辑,f.ex分析脚本:
script.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://example.com/cdn.js';
Run Code Online (Sandbox Code Playgroud)
但据我所知,您也可以这样做:
script.src = '//example.com/cdn.js';
Run Code Online (Sandbox Code Playgroud)
它应该使用当前使用的任何协议.或者我错过了什么?什么被认为是"最佳实践"?
我不是在寻找浏览器兼容性答案,谷歌已经建议//使用CDN脚本,所以在这里不应该这样.
这是一个小提琴,但它并没有说它似乎在这个设置中工作:http://jsfiddle.net/6ZGyb/
https://friends-with-you.myshopify.com/
我正在努力开发我的第一个shopify主题.我正在尝试加载托管在另一台服务器上的样式表,但CSS没有加载.如果我将CSS直接复制并粘贴到shopify主题的文件中,它就可以了.
<link type="text/css" rel="stylesheet" href="http://fwy.pagodabox.com/magic/themes/fwy/fwy.css" />
Run Code Online (Sandbox Code Playgroud)
我在上面的URL上做错了什么,为什么不加载css?
谢谢!
在设置要运行的站点时,https://有一种方法可以阻止页面阻止从标准加载的任何外部css或javascript http://.
某些外部文件位于同一个域下,因此可以通过调用https://,但有些来自另一个没有安全连接的域.
在我的网站上,我倾向于使用网站链接而不是相对链接,如下所示:
我用:
<link rel="stylesheet" type="text/css" href="http://www.example.com/_css/_all/stylesheet-global-styles.css" />
Run Code Online (Sandbox Code Playgroud)
替代(相对):
<link rel="stylesheet" type="text/css" href="/_css/_all/stylesheet-global-styles.css" />
Run Code Online (Sandbox Code Playgroud)
我使用网站链接的原因是因为我使用了很多虚荣URL,例如:
example.com/test => example.com/test.php
example.com/test/1 => example.com/test.php?id=1
由于第二个示例中的多个"/",我的页面认为它们位于网站的子目录中,因此除非我输入"../",否则"相对"链接不起作用.我不能这样做,因为这意味着根据查询字符串是否存在以及有多少'/'来存储目录.因此,我被迫使用站点链接来包含我所需的内容.
我知道每个请求因此必须执行DNS查找,这会减慢它,但我的问题是,如果我链接,比如5个样式表和脚本,它会慢多少?