我有一个网站在Firefox和IE中完全加载,但被Chrome阻止。 Chrome正在抱怨混合模式内容,但所有资源都由相同域中的相对网址访问。
根据我的理解,相对URL应使用与正在加载的“主”页面相同的协议。在这种情况下,我有以下内容:
<link href="/assets/css/small.css" title="Small" rel="alternate stylesheet" type="text/css" />
<link href="/assets/css/large.css" title="Large" rel="alternate stylesheet" type="text/css" />
两者都是相对网址。当通过HTTPS加载页面时,我从Chrome控制台获取以下内容(我更改了客户隐私的域名):
[blocked] The page at https://www.example.com/Login/ ran insecure content from http://www.example.com/assets/css/small.css. [blocked] The page at https://www.example.com/Login/ ran insecure content from http://www.example.com/assets/css/large.css.
假设相对URL应该遵守所请求的协议,我错了吗?
更新: 它也以相同的方式阻止.js文件:
<script src="/assets/scripts/change-text-size.js" type="text/javascript"></script>
被封锁:
[blocked] The page at https://www.example.com/Login/ ran insecure content from http://www.example.com/assets/scripts/change-text-size.js.
另一个奇怪的事情是,如果我在有问题的页面上查看源代码,我会看到相对网址,如果我将光标悬停在资源(样式表,.js文件)的“链接”上工具提示说它是https:。
更新2: .css文件中没有引用任何内容。以下是上面提到的“small.css”文件的全部内容:
div#content-wrap,
div#content-one-col
{
font-size: 65%;
}
答案 0 :(得分:3)
在您的公开示例中,静态资源会重定向到http版本,从而导致Chrome投诉。
例如,如果您转到https://www.bayerglucofacts.com/assets/css/de-de.css,则会获得302重定向到http://www.bayerglucofacts.com/assets/css/de-de.css,从而产生错误。
答案 1 :(得分:2)
我遇到了同样的问题,这是因为<base>
标记指向网站的非SSL版本。
然而,正如ScottR指出的那样,这是由于您的CSS重定向到非SSL版本。现在似乎已经修好了 - 不要忘记接受他的回答!
答案 2 :(得分:1)
似乎很可能css中的链接指向http图像/资源。