如何在需要时通过 HTTPS 包含 CSS 和 JS 文件?
我正在将外部 CSS 文件和外部 JS 文件添加到页眉和页脚中。 加载 HTTPS 页面时,某些浏览器抱怨我正在加载不安全的内容。
当页面本身是HTTPS时,有没有一种简单的方法可以让浏览器通过HTTPS加载外部内容?
I am adding an external CSS file and an external JS file to my headers and footers.
When loading an HTTPS page, some browsers complain that I am loading unsecured content.
Is there an easy way to make the browser load the external content via HTTPS when the page itself is HTTPS?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用协议相对路径。
因此不是
,但是
它将使用父页面的协议。
Use protocol-relative paths.
Thus not
but so
then it will use the protocol of the parent page.
努特詹姆斯韦斯特盖特在评论后面的答案时是正确的。
如果我们看一下各种工业级外部 javascript 包含的内容,就会发现成功的使用了 document.location.protocol 嗅探和脚本元素注入,并且使用了正确的协议。
所以你可以使用类似的东西:
对于外部 CSS 包含也可以做同样的事情。
顺便说一句:请小心,仅在 CSS 中使用相对 url() 路径(如果有),否则您可能仍会收到“混合安全和不安全”警告......
nute & James Westgate are right when comenting on the later answer.
If we take a look at miscelanous industry-grade external javascript includes, the successfull ones use both document.location.protocol sniffing and script element injection tu use the proper protocol.
So you could use something like :
The same can be done for external CSS includes.
And by the way: be careful to only use relative url() path in your CSS, if any, otherwise you might still get the "mixed secure and unsecure" warning....
如果您使用相对路径(并且内容位于同一域中),则内容应使用请求页面的协议。
但是,如果您要跨域访问 CDN 或资源站点,或者需要使用绝对路径,那么您将需要使用服务器端脚本来更改链接,或者始终使用 https://
If you use relative paths ( and the content is on the same domain) then the content should use whichever protocol the page was requested in.
However if you are going across domain to a CDN or resource site, or if you need to use absolute paths, then you will need to use server side script to change the links, or always use https://
与转义响应(也可以工作)相矛盾的是,您可以跳过该部分并使用正确的方法将节点添加到您的 dom 树中:
但是协议相对路径将是正确的方法。
In contradiction to the escaped response (which will also work) you could skip that part and use the correct way to add nodes to your dom tree:
But the protocol-relative path would be the way to go.