assets / stylesheets目录中的样式表是否自动应用于所有视图?

时间:2012-09-12 18:12:20

标签: ruby-on-rails-3.2 asset-pipeline

这不是我对资产管道的期望。

假设我有一个名为“bugs_controller.rb”的控制器。生成控制器还为我提供了资产管道中的样式表:

bugs.css.scss

现在,我在Rails 3.2.8应用程序中使用simple_form_for。我希望这个控制器中的表单元素与float:le ft一起布局,所以在bugs.css.scss中我放了:

.control-group {
  float: left;
}

但是当我这样做时,它会将该风格应用于我的观点的所有

这意味着Asset Pipeline仅针对CSS的维护目的提供关注点分离。这是正常的功能吗?如果是这样,在每个页面上加载用户不需要的CSS背后的原因是什么?或者我的应用程序错误地在其他视图上加载了bugs.css.scss?

1 个答案:

答案 0 :(得分:1)

您正在加载application.css吗?如果你是,你在那里有这条线 * = require_tree。 然后将加载stylesheets文件夹中的所有css文件。我是rails 3的新手,并不确定这是否是推荐的方法,但是当我需要在我的布局文件中,在加载需要加载的css文件之后的head标签中执行所要求的操作时我把

<%= yield :css_files %> 

然后在其他视图中需要文件顶部的其他特定css文件,我添加

<%= content_fo :css_files do %>
     <%= stylesheet_link_tag 'whatever.css' %>
<% end %>

希望这有帮助。

或者你总是可以将表单包装在一个带有id的容器中,并在css目标.control-group中包装该特定容器:

#form-wrapper .control-group
{
     float: left;
}