12

我有一个在 Firefox 和 IE 中加载完美的网站,但被 Chrome 阻止。Chrome 抱怨混合模式内容,但所有资源都通过同一域中的相对 URL 访问。

据我了解,相对 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" />

两者都是相对 URL。当页面通过 HTTPS 加载时,我从 Chrome 控制台获得以下信息(我更改了域名以保护客户的隐私):

    [阻止] https://www.example.com/Login/ 的页面运行不安全
    来自 http://www.example.com/assets/css/small.css 的内容。

    [阻止] https://www.example.com/Login/ 的页面运行不安全的内容
    http://www.example.com/assets/css/large.css。

我认为相对 URL 应该遵守所请求的协议是错误的吗?

更新: 它还阻止以相同方式引用的 .js 文件:

<script src="/assets/scripts/change-text-size.js" type="text/javascript"></script>

被阻止:

[阻止] https://www.example.com/Login/ 的页面运行来自 http://www.example.com/assets/scripts/change-text-size.js 的不安全内容。

另一个奇怪的事情是,如果我在有问题的页面上查看源代码,我会看到相对 url,如果我将光标悬停在资产(样式表、.js 文件)的“链接”上,工具提示会说这是https:。

更新 2: .css 文件中没有引用任何内容。这是上面提到的“small.css”文件的全部内容:

div#content-wrap,
div#content-one-col
{
    font-size: 65%;
}
4

3 回答 3

5

In your public example, the static assets are redirecting to the http version, causing Chrome to complain.

Eg if you go to https://www.bayerglucofacts.com/assets/css/de-de.css - you get a 302 redirect to http://www.bayerglucofacts.com/assets/css/de-de.css which gives the error.

于 2012-10-22T16:04:12.393 回答
2

I've been having the same problem, and this was due to a <base> tag pointing to the non-SSL version of the site.

However, as ScottR pointed out, this was due to your CSS redirecting to the non-SSL version. It seems that is fixed now - don't forget to accept his answer though!

于 2014-01-02T10:24:14.827 回答
1

css 中的链接似乎很可能指向 http 图像/资源。

于 2012-10-17T14:11:10.233 回答