我正在使用 Rails 3.1.rc5 构建我的第一个单独的 Rails 应用程序。我的问题是我想让我的网站有条件地呈现各种 CSS 文件。我正在使用 Blueprint CSS,并且我试图让 sprockets/railsscreen.css
大部分时间渲染,print.css
仅在打印时,并且ie.css
仅在从 Internet Explorer 访问该站点时。
不幸的是,清单中的默认*= require_tree
命令包括目录中的所有内容,并导致令人不快的 CSS 混乱。我目前的解决方法是一种蛮力方法,我单独指定所有内容:application.css
assets/stylesheets
在 application.css 中:
*= require_self
*= require home.css
...
*= require blueprint/screen.css
在我的部分样式表(haml)中:
<!--[if lt IE 9]
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
![endif]-->
= stylesheet_link_tag "application"
= stylesheet_link_tag 'blueprint/print', media: 'print'
<!--[if lt IE8]]
= stylesheet_link_tag 'blueprint/ie'
![endif]-->
= javascript_include_tag "application"
这行得通,但不是特别漂亮。我已经进行了几个小时的搜索才能做到这一点,但我希望有一些我刚刚错过的更简单的方法来做到这一点。如果我什至可以有选择地呈现某些目录(不包括子目录),它将使整个过程不那么僵化。
谢谢!