火狐浏览器在HTTPS上无法加载CSS文件。

3
您可以在以下链接中查看我的问题: https://www.rekuperatory.pl/ssltest/ 当您使用Firefox打开此网站时,CSS无法加载。问题是,Chrome、IE和Opera正确加载CSS。同时,FF也能正确读取内联样式。
通过HTTP访问网站时没有任何问题: http://www.rekuperatory.pl/ssltest/ - 它会在包括Firefox在内的所有浏览器上正常加载。
问题只出现在Firefox、只通过HTTPS以及只有在单独的CSS文件中。 我已联系主机提供商,他们表示SSL证书一切正常,问题必须在链接CSS文件中。但我不认为这是真的。只需查看代码即可:

h1{
  color: #2387ff;
  font-size: 50px;
  text-align: center;
  background-color: #F0F8FF;
}
.hide{
  display: none;
}
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="style.css"/>
</head>
<body>

<h1>
    This should be blue and centered
</h1>

<div class="hide">CSS NOT LOADED* <br/> <small>*This DIV has "display: none" rule</small>
</div>

<h2 style="  color: #499249; text-align: center; background-color: #e6ffe3;">
    Header with inline style.
</h2>

</body>
</html>

2个回答

4
这很可能是由于请求style.css的响应头不正确导致的。

https://www.rekuperatory.pl/ssltest/style.css未加载,因为其MIME类型为"text/html"而不是"text/css"。

请注意,当您访问http://网址时,服务器会正确响应Content-Type: text/css,但在https://网址上,它会响应Content-Type: text/html

的确...有趣的是Firebug不会抛出这个错误。它只会在打包的开发工具中看到。这就是为什么我没有看到它。你知道我怎样才能修复这个问题,让服务器返回正确的类型吗? - zorza
您需要确保您的服务器针对您遇到问题的 MIME 类型具有正确的设置,这取决于您使用的用于提供内容的 Web 服务器。我建议您在一个新的问题中专门针对此问题进行更成功的解决。 - Sphvn
事实证明,这是由.htaccess条目引起的,该条目负责处理浏览器缓存。现在一切正常,谢谢! - zorza

0
我不确定为什么有些人会想出复杂的解决方案。在我的情况下,我只需要删除缓存文件和Cookie(后者在刷新时通常被省略)。不仅在浏览器中,如果您使用缓存优化,还要在您的网站中进行清理。

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