如何在Rails 3.1中管理CSS样式表资产?

Ben*_*Ben 23 ruby-on-rails sass ruby-on-rails-3.1 sprockets

我刚刚学习了Rails 3.1中的新资产管道.我遇到的一个特殊问题是Sprockets将所有找到的CSS样式表混合成一个巨大的样式表.我理解为什么这比手动合并样式表和缩小生产更有利.但我希望能够有选择地级联样式表,而不是将所有规则全部混合在一起.例如,我想:

master.css

由Rails应用程序中的所有页面加载,但我想要

admin.css只能由admin部分/命名空间中的页面/视图加载.

我如何利用Rails 3.1结合样式表并将其缩小为生产的好方法,还具有以前的灵活性,即每个布局只能加载某些样式表组合?

或者应该通过在布局中向body标签添加一个类来完成 -

body class ="admin"

然后酌情定位样式规则.使用SASS范围选择器这可能是一个合理的解决方案.

zee*_*raw 8

这就是我解决造型问题的方法:( 原谅Haml)

%div{:id => "#{params[:controller].parameterize} #{params[:view]}"}
    = yield
Run Code Online (Sandbox Code Playgroud)

这样我就可以使用以下命令启动所有特定于页面的.css.sass文件:

#post
  /* Controller specific code here */
  &#index
    /* View specific code here */
  &#new
  &#edit
  &#show
Run Code Online (Sandbox Code Playgroud)

这样你就可以轻松避免任何冲突.

希望这有助于一些人.


小智 0

到目前为止,我所做的方法是有两个单独的文件夹 a/ 和 u/,其中 a/ 用于管理视图,u/ 用于用户视图。然后在布局中,我使用 asset/u/application.css(js) 指向相应的 application.css。每次都必须移动自动生成的文件,这有点痛苦,但比必须在清单中单独要求每个文件要少得多。