2015-04-12 55 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>