由于某种原因,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 清除页面缓存并重新加载通常可以解决问题。