【问题标题】:Different Stylesheets for Different Actions不同动作的不同样式表
【发布时间】:2015-03-22 21:38:40
【问题描述】:

假设我有一个会话控制器,我有两个操作:菜单和新建。

我对每个动作都有不同的样式表和 html 文件:

menu.css.scss
new.css.scss

不幸的是,当我加载每个网页时,它同时使用了两个 css 文件。我怎样才能停下来?

【问题讨论】:

    标签: html css ruby-on-rails asset-pipeline erb


    【解决方案1】:

    这就是 Rails 的工作方式(它将样式表一起编译成一个 stylesheet.css),使单个样式与每个动作一起工作的最简单方法是在每个动作的 html 视图中为您的父 div 添加一个 id,然后然后在样式表中将其声明为父级。

    <div id="menu"...>
    
    <div id="new"...>
    

    并在 menu.css.scss 添加这个

    #menu {
     .your_class_details_here {
    
     }
     .next_style_here {
    
     }
    
    }
    

    new.css.scss

    #new {
     .your_details_here {
    
     }
     .next_style_here {
    
     }
    
    }
    

    这样,这些样式就不会在其他视图之间共享。

    【讨论】:

      【解决方案2】:

      我在这里找到了我的问题的答案:http://theflyingdeveloper.com/controller-specific-assets-with-rails-4/

      我所要做的就是从我的application.js 中删除//= require_tree . 并从我的application.css 中删除*= require_tree.

      然后我就在我的config/initializers/assets.rb 中像这样预编译它们

      Rails.application.config.assets.precompile += %w( menu.css )
      Rails.application.config.assets.precompile += %w( new.css )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-13
        • 1970-01-01
        • 1970-01-01
        • 2014-03-24
        • 2019-12-10
        • 2014-04-11
        • 2012-06-24
        • 2013-01-19
        相关资源
        最近更新 更多