当使用协议相对URL时加载的是哪个协议?

5

我刚开始测试“无协议Url”背后的理念。

我想要解决的问题是:在https页面中,我需要从http加载外部css文件。

按照“正常”的方式做会导致失败……css文件被阻止了。(现在只是用chrome测试一下)

所以我的问题是:“无协议Url”是否可以从http/https/两者都加载文件?


不确定,但您可以查看此答案 - The Alpha
1
这是一个有效的问题。 - Jarrod
这似乎在 Google 中排名第一。请参见 https://dev59.com/9m445IYBdhLWcg3wfKYZ 的详细答案。 - epascarello
顺便提一下,协议相对 URL 现在已经成为反模式:http://www.paulirish.com/2010/the-protocol-relative-url/ - user
1个回答

13

如果你提到的是像www.example.com/style.css这样的URL,那就不行,因为协议完全丢失了;浏览器会将www.example.com视为某种目录路径名称。

如果你提到的是像//www.example.com/style.css这样的URL,则是一个协议相对URL;它使用与浏览器已经用来请求引用页面的协议相同的协议。例如,如果浏览器请求了一个带有https://www.example.com的页面,则该URL将通过HTTPS请求而不是HTTP请求。

浏览器对这些URL的支持通常非常好;请参阅以下问题:


1
所以它将继承当前的协议...因此在我的https页面上,它将尝试从https加载css? - Mackelito
1
没错。你的服务器只需要能够适当地响应即可。 - BoltClock
在另一个CSS文件中使用导入规则加载CSS文件是否有效? - Krunal
1
@Krunal:应该可以工作。 - BoltClock
@BoltClock 感谢您的通知。我已经检查过了,它运行得很好。+1 - Krunal
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接