最佳答案
我正在用 Rails 3.1构建我的第一个单独的 Rails 应用程序。Rc5.我的问题是,我想让我的网站有条件地呈现各种 CSS 文件。我使用的是 Blueprint CSS,大部分时间我都是使用 sprockets/ails 渲染 screen.css
,只有在打印的时候才渲染 print.css
,只有在从 Internet Explorer 访问站点的时候才渲染 ie.css
。
遗憾的是,application.css
清单中的默认 *= require_tree
命令包含 assets/stylesheets
目录中的所有内容,并导致令人不快的 CSS 混乱。我目前的解决办法是一种蛮力方法,我单独指定每件事:
在应用中 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"
这个可以,但不是特别漂亮。为了走到这一步,我已经找了几个小时,但我希望能找到一些我刚刚错过的更简单的方法。如果我甚至可以有选择地渲染某些目录(不包括子目录) ,这将使整个过程少了很多僵化。
谢谢!