2016-03-04 44 views
0

我有一个Rails应用程序,它有几个“静态”页面,我打算将来会有更多。将特定的样式表添加到单个Rails页面

当前文件结构:

.... 
/assets/stylesheets/static.scss 
.... 
/controllers/static_controller.rb 
.... 
/views/static/home.html.erb 
/views/static/feedback.html.erb 
.... 

我Gemfile中包含“自举Sass的宝石。

我想home.html.erb看法有从所有其他“静态”的网页不同的风格,具体如下CSS:

html { 
    height: 100%; 
    background: url(assets/image.jpg) no-repeat center center; 
    background-size: cover; 
    font-family: Arial; 
} 

h1 { 
    color: black; 
    font-style: bold; 
    text-align: center; 
} 

如何/这应该最有效地实现?我需要为home.html.erb创建另一个控制器/视图/样式表吗?

CODE:

application.html.erb:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Batuk</title> 
<%= Gon::Base.render_data({}) %> 
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
    <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    <%= csrf_meta_tags %> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
</head> 
<body> 

<nav class="navbar navbar-default"> 
    <div class="container-fluid"> 
    <div class="navbar-header"> 
     <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     <span class="icon-bar"></span> 
     </button> 
     <%= link_to 'BATUK', root_path, class: "navbar-brand" %> 
    </div> 

    <div class="collapse navbar-collapse" id="myNavbar"> 
     <ul class="nav navbar-nav"> 
     <li><%= link_to 'Summary', summary_path %></li> 
     <li><%= link_to 'Statement', statement_path %></li> 
     <li><%= link_to 'Balances', balances_path %></li> 
     <li><%= link_to 'Accounts', accounts_path %></li> 
     </ul> 

     <ul class="nav navbar-nav navbar-right"> 
     <li><%= link_to 'Feedback', feedback_path %></li> 
     <li><%= link_to 'Sign Out', root_path %></li> 
     </ul> 
    </div> 

    </div> 
</nav> 

<div class="container"> 
    <%= yield %> 
</div> 

<%= render 'layouts/footer' %> 

</body> 
</html> 
+0

我想这个答案,从这个太问题可以帮助你,http://stackoverflow.com/a/7676570/708807 – Chris

回答

1

的一种方法是指定您的控制器和操作使用CSS类。

在你的app/views/layouts/application.html.erb中,添加controller_nameaction_name方法调用来生成CSS类。

<body class="<%= controller_name %> <%= action_name %>"> 

CSS

html { height: 100% } 

body.home { 
    height: 100%; 
    background: url('assets/image.jpg') no-repeat center center; 
    background-size: cover; 
    font-family: Arial; 
} 

.home h1 { 
    color: black; 
    font-style: bold; 
    text-align: center; 
} 
0

创建相匹配的名称,您static_controller布局,模板名称应该是static.html.erb。 然后指定你的控制器布局

class staticController < ApplicationController 
    layout 'static' 
end 
相关问题