如何转义application.html.erb文件

时间:2015-04-12 12:31:34

标签: html css ruby-on-rails ruby ruby-on-rails-4

所以我建立了一个网络应用程序'在rails 4.2.0上使用ruby 2.1.5。

我现在想要的是单页登陆页面。我不希望此着陆页受到我在样式表布局中的任何其他现有css文件的影响。

着陆页(理想情况下)使用名为freelancer.css的css文件,我网站的其余部分使用default.css。

总之;如何在为我的应用程序的其余部分转义其余的css / scss文件时,为单个视图/控制器专门调用样式表。

目标网页有自己的名为Welcome的控制器。

class WelcomeController < ApplicationController
  def index
    render layout: false
  end
end

我已经定义了一条自定义路线。

  authenticated :user do
    root 'pages#home', as: "authenticated_root"
  end
  root 'welcome#index'

我的欢迎控制器索引就是这样。

<head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="description" content="">
        <meta name="author" content="">
        <%= favicon_link_tag 'notes.png' %>
        <title>Balern Edu.</title>
        <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
        <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
        <%= csrf_meta_tags %>
        <script src='assets/moment.min.js'></script>
        <script src='assets/fullcalendar.js'></script>
        <link rel='stylesheet' href='assets/fullcalendar.css'>

        <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
        <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
          <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
    </head>

我的application.css.scss文件:

 *
 *= require_self
 *= require 'masonry/transitions'
 *= require font-awesome
 *= require_tree .
 */
@import 'bootstrap';
@import 'bootstrap/theme';
@import 'chosen';
@import 'image-select';

2 个答案:

答案 0 :(得分:4)

您可以在render layout: false的顶部使用layout: "welcome",而不是使用WelcomeController,其中布局页面称为welcome.html.erb。在那里,你可以调用你想要的任何样式表。

答案 1 :(得分:0)

您只能将css或JavaScript文件包含在将此代码放入自定义视图的自定义页面中:

<% content_for :head do %>
  <%= javascript_include_tag "posts" %>
  <% stylesheet_link_tag "posts" %>
<% end %>

此外,您需要将此代码放在 application.html.erb

<head>
  <%= yield :head %>
</head>