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