stackoverflow.com 不再在我的某个浏览器中呈现 css

stackoverflow.com 不再在我的某个浏览器中呈现 css

由于某种原因,OS X 上的 Firefox 决定忽略 CSS 样式。

当我通过 Firefox 指向 stackoverflow 时,它看起来就像 90 年代早期的一些俗气网站。

只有在使用 Firefox 时,Mac 笔记本电脑才会出现这种情况。Safari 和 Chrome 运行正常。Windows VM 中的 Firefox 运行正常。我的其他机器都没有遇到 Firefox 问题。其他 stack exchange 站点(meta、superuser、serverfault)都没有遇到这个问题,即使在这台机器上使用 Firefox 也是如此。没有发生任何异常。Firefox 没有崩溃或出现任何问题。今天早上它只是决定从现在开始,这个站点将忽略 CSS 样式!

我可以对 Firefox 进行一些调整,使其停止这种行为吗?

更新:谢谢您的回复,但是一天后它似乎就自行停止了。

答案1

各种想法:

  • 也许您的 Firefox 缓存中的 StackOverflow CSS 文件已损坏。请尝试清空 Firefox 的缓存,然后重试。

  • 登录到来宾帐户,查看在来宾帐户中 Firefox 是否遇到同样的问题。

  • 在 Firefox 中安装“Firebug”HTML/CSS/DOM/JS 调试器并使用它来检查正在发生的事情。

答案2

几个月前我在 Linux 上使用 Firefox 时也遇到了同样的问题(即在两台安装类似的机器中,只有一台机器重启并清除了缓存)。该网站看起来像是裸 HTML(没有应用任何样式),投票按钮等功能不起作用。

简短回答:在我的例子中,问题在于 Firefox 参数 network.http.accept-encoding(在 中about:config)被设置为空字符串。将其重置为默认值

gzip, deflate

使 Stackoverflow 再次工作。

较长的答案:

即使在 -safe-mode(即禁用所有扩展)下,我也看到了问题。查看错误控制台,Firefox 抱怨数据中存在“非法字符”http://cdn.sstatic.net/js/stub.js?v=f3ba9bf843c1。这似乎是一个 gzip 压缩的 javascript 文件(手动下载并运行file),出于某种原因,Firefox 似乎无需解压即可解释它。然后出现连续的有关未知符号(在此 gzip 压缩的 javascript 文件中定义)的 javascript 错误。

查看 HTTP 流量,可以看到(使用我原来的、有问题的设置):

要求:

GET /js/stub.js?v=f3ba9bf843c1 HTTP/1.1
Host: cdn.sstatic.net
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://stackoverflow.com/

请注意字段Accept-Encoding表明 Firefox 已准备好接受 gzip 压缩数据。

对此的 HTTP 响应:

HTTP/1.1 200 OK
Server: nginx/0.8.36
Date: Sat, 25 Jun 2011 16:53:21 GMT
Content-Type: application/x-javascript
Connection: keep-alive
Cache-Control: max-age=604800
Content-Encoding: gzip                
Last-Modified: Fri, 24 Jun 2011 13:33:57 GMT
ETag: "64cd5e5e7332cc1:0"
Vary: Accept-Encoding
Content-Length: 6464
X-Cache: HIT
Accept-Ranges: bytes

因此 nginx 服务器会将Content-Encoding字段设置为进行响应gzip,忽略客户端的功能。我不确定,但在我看来,这似乎是服务器端的违规行为。

将 Firefox 参数设置network.http.accept-encoding为其出厂设置值后,上述 javascript 文件的 http 通信如下所示:

要求:

GET /js/stub.js?v=f3ba9bf843c1 HTTP/1.1
Host: cdn.sstatic.net
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate    
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://stackoverflow.com/

现在 Firefox 告诉服务器它接受 gzip 压缩的数据。

回复:

HTTP/1.1 200 OK
Server: nginx/0.8.36
Date: Sat, 25 Jun 2011 17:02:08 GMT
Content-Type: application/x-javascript
Connection: keep-alive
Cache-Control: max-age=604800
Content-Encoding: gzip
Last-Modified: Fri, 24 Jun 2011 13:33:57 GMT
ETag: "64cd5e5e7332cc1:0"
Vary: Accept-Encoding
Content-Length: 6464
X-Cache: HIT
Accept-Ranges: bytes

答案3

Firefox 运行时间足够长后,我有时会遇到此问题。退出 Firefox,重新加载页面,然后按 Shift-reloading 清除页面缓存并重新加载通常可以解决问题。

相关内容