小编典典

url / src / href属性中的两个正斜杠[重复]

html

这个问题已经在这里有了答案

8年前关闭。

可能重复:
URI以两个斜杠开头……它们的行为如何?

省略协议(方案)的绝对URL以便将当前页面的简写形式之一保留

为//脚本和链接标记?有人看过/使用过吗?

当我发现以下一时,我正在浏览HTML5重置的来源:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

为什么URL以两个正斜杠开头?这是简写http://吗?


阅读 530

收藏
2020-05-10

共1个答案

小编典典

“两个正斜杠”是“现在正在使用什么协议”的常用缩写。

最有名的是“协议相对URL”,当可以从httphttps上下文加载元素(例如您示例中的JS文件)时,它们特别有用。通过使用协议相对URL,您可以避免实施

if (window.location.protocol === 'http:') {
    myResourceUrl = 'http://example.com/my-resource.js';
} else {
    myResourceUrl = 'https://example.com/my-resource.js';
}

整个代码库中的逻辑类型(当然,假设服务器example.com能够同时通过http和来提供资源https)。

Magento电子商务引擎是现实世界中一个著名的例子:出于性能原因,http默认情况下,商店的页面使用纯文本,而结帐功能已https启用。

当非协议相关的URL(即http://example.com/banner.jpg)引用了硬编码的资源(即网站标题中的促销横幅)时,到达已https启用结帐处的客户会受到相当不友好的欢迎

“此页面上存在不安全的元素”

提示-就像您可以想象的那样,这会让普通的不懂技术的人丢掉。

如果通过上述方式引用了上述资源//example.com/banner.jpg,则浏览器将在适当的协议之前进行处理。

tl; dr:即使在混合http / https环境的可能性很小的情况下,也只需使用双斜杠/协议相对URL来加载资源-
假设提供内容的主机同时启用了http和https。

2020-05-10