2015-04-12 44 views
1

因此,我在rails 4.2.0上使用ruby 2.1.5构建了一个'web app'。我该如何逃避我的application.html.erb文件

我现在想要的是一个单页登陆页面。我不希望此着陆页受我在样式表布局中存在的任何其他现有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'; 

回答

4

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

+0

我做了这些更改,但是我看到一个导航栏,即在我的布局目录中。我不想让welcome.html.erb登陆页面知道那些css文件,只是一个叫freelancer.css.scss的文件。所以我想删除所有partials,navs,css等,并希望整个welcome.html.erb基本上只有一个空html.file(关于其内容)。 –

+0

您是否在'layouts'视图文件夹中创建了名为'welcome.html.erb'的文件?你能编辑你的问题来包含该文件的内容吗? –

+0

我相信你是对的,我没有像你所说的那样正确实施一切。你的回答很有帮助,谢谢! –

0

可以包括CSS或只为把这个代码在您的自定义视图自定义页面的JavaScript文件:

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

你也需要把这段代码放在application.html.erb

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