Chrome在https页面上加载http脚本

5

我们在模板中使用绝对路径,即:

<link rel="stylesheet" href="/media/css/ui.css?v=3" />

当我试图打开https页面时,出现以下错误:
[blocked] The page at 'https://{{ full_site }}/{{secure_page}}' was loaded over HTTPS, 
but ran insecure content from 'http://{{full_site }}/media/css/ui.css?v=3': 
this content should also be loaded over HTTPS.

但路径 https://{{full_site }}/media/css/ui.css?v=3 是可用的...

告诉我,为什么Chrome在https页面上尝试加载http内容?如何强制它在相对路径上加载https脚本?

更新:页面在Firefox中完美加载。因此,这只是Chrome的问题。所有路径都是相对的。


资源的绝对URI是什么? - PeeHaa
这可能对您有所帮助 https://developer.mozilla.org/zh-CN/docs/Security/MixedContent/fix_website_with_mixed_content#How_to_fix_your_website - Sachin Jain
你的CSS文件ui.css中是否有加载HTTP内容的url属性? - Sachin Jain
1
可能是Chrome不支持相对URL中的https的重复问题。 - kapa
1个回答

4
这可能是你的CSS文件ui.css引用资源(如图片)时使用了不安全的HTTP协议,即通过background或background-image属性加载不安全内容而导致的。
如果您在网站上有资源,请使用相对协议链接,例如:
url(//example.com/images/some_image.png)

同样地,更新您的链接以使用相对协议链接,例如
<link rel="stylesheet" href="//{{full site}}/media/css/ui.css?v=3" />

1
在CSS中,我们有像background: url("/media/images/lock.png");这样的URL...添加//{{fullsite}}/会有帮助吗?如果我们有多域应用程序怎么办? - Nikolay Fominyh

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