Chrome不支持相对网址中的https

时间:2012-10-17 14:07:12

标签: google-chrome ssl

我有一个网站在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%;
}

3 个答案:

答案 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图像/资源。