【问题标题】:Does a stylesheet in the assets/stylesheets directory automatically apply to ALL views?assets/stylesheets 目录中的样式表是否会自动应用于所有视图?
【发布时间】:2012-09-12 18:12:20
【问题描述】:

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

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

bugs.css.scss

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

.control-group {
  float: left;
}

但当我这样做时,它会将这种风格应用于我的所有视图。

这意味着资产管道仅出于维护 CSS 的目的而提供关注点分离。这是正常功能吗?如果是这样,在每个页面上加载用户不需要的 CSS 背后的原因是什么?还是我的应用程序错误地将 bugs.css.scss 加载到其他视图上?

【问题讨论】:

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


    【解决方案1】:

    您正在加载 application.css 吗?如果你是并且你有这条线 *= 要求树。 然后将加载样式表文件夹中的所有 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多