2016-02-28 30 views
1

我是Rails的新手,並且無法獲取佈局(正在用作獨特的靜態目標頁面)來加載特定的樣式表,我想將它與其關聯。例如:www.landing.com加載landing.scss.erbRails:如何爲特定的佈局加載特定的樣式表?

作爲背景,所有其他路線要與不同的,更加複雜的佈局不同的頁面,我已經存儲在assets/stylesheets。例如:。www.landing.com/A(a.scss.erb); www.landing.com/B(b.scss.erb)着陸頁面樣式也是assets/stylesheetslanding.scss.erb

在我home controller我有一個行動,這呈現着陸頁:

def landing 
     render :layout => "landing" 
    end 

在我routes.rbget 'landing' => 'home#landing'

在我views/layouts我有一個文件landing.html.erb在我在我的head使用<%= stylesheet_link_tag 'landing.scss.erb', media: 'all' %>嘗試和負載ŧ他的具體樣式表,但是,着陸頁不加載。

如果在我的application.scss幫助文件,包括我@import "landing",那麼我所有的其他頁面被application.html.erb決定將得到landing.scss.erb造型這不是我想要的。

任何幫助非常感謝!

+0

那麼,整個頁面沒有加載(即得到一個錯誤),或者是它只是不加載樣式表? –

+0

您是否還在路由文件中使用[root](http://guides.rubyonrails.org/routing.html#using-root)方法? –

+0

嗨@RyanK,'landing.html.erb'頁面正在加載,只是樣式表不是。我還使用'root'方法轉到'home#index',其中包含一個'case'語句,該語句將用戶引導到不同的子域,並將'else'重定向到目標頁面。 – PaulT12

回答

1

我想通了,什麼是錯誤的。我相信我的佈局中調用樣式表的語法不正確。

當我改變了它從<%= stylesheet_link_tag '/assets/stylesheets/landing.scss.erb', media: 'all' %>', media: 'all' %>

<%= stylesheet_link_tag 'landing', media: 'all' %>,我得到了一個新的錯誤告訴我

Rails.application.config.assets.precompile += %w(landing.css)添加到config/initializers/assets.rb

我加入它,重新啓動我的服務器和我的新佈局是正確渲染特定的樣式表。

不過,我仍然需要弄清楚究竟這是什麼precompling代碼做什麼和爲什麼需要它。任何指導/澄清表示讚賞。