这个问题已经在这里有了答案 :
8年前关闭。
可能重复: URI以两个斜杠开头……它们的行为如何? 省略协议(方案)的绝对URL以便将当前页面的简写形式之一保留 为//脚本和链接标记?有人看过/使用过吗?
可能重复: URI以两个斜杠开头……它们的行为如何?
省略协议(方案)的绝对URL以便将当前页面的简写形式之一保留
为//脚本和链接标记?有人看过/使用过吗?
当我发现以下一时,我正在浏览HTML5重置的来源:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
为什么URL以两个正斜杠开头?这是简写http://吗?
http://
“两个正斜杠”是“现在正在使用什么协议”的常用缩写。
最有名的是“协议相对URL”,当可以从http或https上下文加载元素(例如您示例中的JS文件)时,它们特别有用。通过使用协议相对URL,您可以避免实施
http
https
if (window.location.protocol === 'http:') { myResourceUrl = 'http://example.com/my-resource.js'; } else { myResourceUrl = 'https://example.com/my-resource.js'; }
整个代码库中的逻辑类型(当然,假设服务器example.com能够同时通过http和来提供资源https)。
example.com
Magento电子商务引擎是现实世界中一个著名的例子:出于性能原因,http默认情况下,商店的页面使用纯文本,而结帐功能已https启用。
当非协议相关的URL(即http://example.com/banner.jpg)引用了硬编码的资源(即网站标题中的促销横幅)时,到达已https启用结帐处的客户会受到相当不友好的欢迎
http://example.com/banner.jpg
“此页面上存在不安全的元素”
提示-就像您可以想象的那样,这会让普通的不懂技术的人丢掉。
如果通过上述方式引用了上述资源//example.com/banner.jpg,则浏览器将在适当的协议之前进行处理。
//example.com/banner.jpg
tl; dr:即使在混合http / https环境的可能性很小的情况下,也只需使用双斜杠/协议相对URL来加载资源- 假设提供内容的主机同时启用了http和https。