所以我在我的 Rails 应用程序的 Internet Explorer 中遇到了一些 CSS 和 Javascript 错误。问题是,当资产未编译时,一切正常。但是,一旦资产被编译成一个 application.css 和一个 application.js,我就开始遇到很多问题(并且仅在 Internet Explorer 7、8、9 中)。知道为什么会发生这种情况吗?我不需要关于确切错误的具体答案,而只需要一般的事情来帮助我开始寻找修复程序。
基本上,为什么编译资产会导致问题?
所以我在我的 Rails 应用程序的 Internet Explorer 中遇到了一些 CSS 和 Javascript 错误。问题是,当资产未编译时,一切正常。但是,一旦资产被编译成一个 application.css 和一个 application.js,我就开始遇到很多问题(并且仅在 Internet Explorer 7、8、9 中)。知道为什么会发生这种情况吗?我不需要关于确切错误的具体答案,而只需要一般的事情来帮助我开始寻找修复程序。
基本上,为什么编译资产会导致问题?
欢迎来到 IE 4095 选择器限制错误:IE 忽略 css 文件中第 4095 个选择器之后的所有内容。
http://support.microsoft.com/kb/262161
你可以在这里测试这个案例:http: //marc.baffl.co.uk/browser_bugs/css-selector-limit/
您的单个 css 文件不会扩展此数量(希望如此),但所有 css 文件合并 - 可能。
如果您使用 jammit 进行压缩,您可以通过编辑 assets.yml 文件来拆分压缩的资产文件:
stylesheets:
common:
file1.css
file2.css
other:
file3.css
file4.css
然后 jammit 会将您的文件拆分为 common.css 和 other.css 不要忘记在您的视图中调用这些文件:
<%= include_stylesheets :common, :media => 'all' -%>
<%= include_stylesheets :other, :media => 'all' -%>
您是否在布局中使用任何 IE 特定样式表或 java 代码..
喜欢
<!--[if IE ] --><%= stylesheet_link_tag 'ie' %><!-- [endif]-->
如果是这样,那么你需要添加这样的东西
config.assets.precompile += %w(ie.css)
或者可能是压缩问题 config.assets.compress == false
或者如果您使用任何 3rd 方 CSS 东西,如 css3pie 等