【问题标题】:Rails 3.1, assets pipeline and IE 6 & 7 in production mode - some CSS & js are not loaded properly生产模式下的 Rails 3.1、资产管道和 IE 6 和 7 - 一些 CSS 和 js 未正确加载
【发布时间】:2012-01-27 02:47:52
【问题描述】:

在生产模式下试用我的 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 中出现。

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

有人遇到过类似的事情吗?

【问题讨论】:

    标签: jquery ruby-on-rails asset-pipeline superfish


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      对于遇到相同问题的任何人,这里是 MS 支持 (http://support.microsoft.com/kb/262161) 的问题根源:

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

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

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

      【讨论】:

      • 哦!很抱歉你不得不支持 IE
      • 是的,大约 20% 的用户,所以我不能忽略它:(
      【解决方案3】:

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

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

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

      【讨论】:

      • 感谢您的指点,但事实并非如此。有兴趣可以看我的回答。
      猜你喜欢
      • 2017-02-06
      • 1970-01-01
      • 2023-04-03
      • 2011-10-04
      • 2012-02-04
      • 2012-07-10
      • 1970-01-01
      • 2011-12-04
      • 2013-05-28
      相关资源
      最近更新 更多