6

在生产模式下试用我的 Rails 3.1 应用程序(Debian 6、Ruby 1.9.2、Passenger)。我使用 IE 6 和 IE 7 进行了尝试,但某些资产未正确加载。在开发模式下一切正常。

一些 css & js 没有正确加载,你所有的文件都在编译。特别是我遇到了下拉问题(jquery superfish 菜单)。在 IE8、IE 9、Firefox、Chrome 的生产和开发中一切正常。该问题仅出现在生产环境中的 IE 6 和 7 中。

尝试清除缓存(在浏览器和服务器上)。重新编译资产。没有任何帮助。

有没有人遇到过任何事情——像那样?

4

3 回答 3

9

对于任何有同样问题的人,MS Support ( http://support.microsoft.com/kb/262161 ) 的问题根源是:

出现此问题的原因在 Internet Explorer 中满足以下条件: 前 31 个样式标记之后的所有样式标记都未应用。不应用前 4,095 条规则之后的所有样式规则。在使用@import 规则持续导入外部样式表的页面上,导入其他样式表的页面,超过三层深度的样式表将被忽略。

啊啊啊啊啊啊啊啊啊!!!杀死了几天试图追查我的代码的问题,当它再次是 MS 不符合标准时!!!#@)(!@#)

这导致我进一步调查,令我惊讶的是 IE6 和 IE7 似乎只处理大 css 文件中的前 2025 行 - 其余的被忽略。(起初我以为是行数限制,但结果发现是 4095 条规则,在 2025 行上)。只是看起来很愚蠢。较新的 IE 和 Chrome、Safari、Opera 和 FF 似乎对此没有问题。我最终将我的 css 分解为 application-1.css 和 application-2.css 以将生产中的文件数量保持在最低限度,但这仍然很烦人。

于 2012-01-03T23:41:20.880 回答
1

有一个很棒的模块 CssSplitter,人们正在使用它来拆分 ie 的 css 文件,并且它已经适应了资产管道中的使用。https://gist.github.com/2398394

于 2012-05-15T13:59:27.533 回答
1

是否启用调试?即在开发模式下你的javascript是否被拆分?

尝试禁用它,以便资产管道将所有内容合并到同一个文件中,看看它是否仍然在开发模式下工作。

当资产合并在一起并且其中一个文件中缺少分号时,我遇到了一些问题。这可能很难找到,但可能会发生。其他更好的浏览器可以渲染它们,但 IE 只是把事情搞混了。

于 2011-12-23T22:50:11.800 回答