有条件地避免在 Asset Pipeline 的 HAML 布局中使用 Application.css? (IE9 4096)

Conditionally avoid using Application.css in HAML layout with Asset Pipeline? (IE9 4096)

我正在处理一个与 IE 9 4096 规则限制错误作斗争的项目。我正在尝试将清单中应包含的所有 css 包含在 if IE 9 块中:

<!--[if !(IE 9)]> -->
= stylesheet_link_tag  "application.css", :media => "all"
<!-- <![endif]-->

<!--[if IE 9]>
= stylesheet_link_tag "stylesheet1.css", :media => "all"
= stylesheet_link_tag "stylesheet2.css", :media => "all"
= stylesheet_link_tag "stylesheet3.css", :media => "all"
<![endif]-->

问题似乎是 rake 或 Asset Pipeline 或其他东西似乎在 [if IE 9] 块的末尾注入了不可见的应用程序文件。

需要说明的是,这是个问题,与条件 HAML 无关*

似乎总是需要 application.css。是这样吗?

有没有办法阻止它在编译 HAML 时被注入? (:plain 有效,但是很老套。你必须维护一个列表)

这个 SO Question 中的评论让我找到了答案。我用:plain封装了[if IE 9]。这阻止了任何奇怪的处理再次注入 application.css。虽然它现在修复了它,但我认为这在长期 运行.

中是不可维护的
:plain
  <!--[if IE 9]>
  = stylesheet_link_tag "stylesheet1.css", :media => "all"
  = stylesheet_link_tag "stylesheet2.css", :media => "all"
  = stylesheet_link_tag "stylesheet3.css", :media => "all"
  ...many more...
  <![endif]-->