2011-10-12 134 views
6

我想將我的application.css文件更改爲sass文件並使用@import來提取所有必需的文件。然後,我想將application.css.sass導入到頁面特定的sass文件中。這一切工作精美的發展,但是當我把它推到生產ENV在Heroku我得到這個錯誤:是否可以將application.css更改爲application.css.sass?

Error compiling CSS asset 
Sass::SyntaxError: File to import not found or unreadable: application 

application.css.sass:

@import "reset" 
@import "typography" 
@import "buttons" 
@import "junk" 

$yellow: #f0f090 
$orange: #f89818 
$blue1: #184898 
$blue2: #4888c8 

body 
background: ... 
... 
/* all the rest of the app-wide styling */ 

uniquePage.css.sass :

@import "application" 
/*page specific styling*/ 

然後在需要的東西不同application.css頁我叫

!!! 5 
%html 
    %header  
    = stylesheet_link_tag "uniquePage" 

回答

3

Then I guess the question becomes, how do I make different manifest files for different css sets?

有幾種方法Ø做到這一點:

1每頁紙

這是你現在在做什麼,但我會整理牀單略有不同,在應用程序和獨特的頁面使用@imports。 (而不是將應用程序導入唯一頁面)。

2.使用的只是那些

頁的第二層您可以只改變該頁面的第二層。所有頁面都有應用程序表單,只需要更改就在唯一頁面上添加第二個標籤。這會導致額外的http請求。

3.重新組織你的CSS

除非額外的CSS是巨大的,你可能會更好的重構,包括在主文件中的代碼。向獨特頁面的主體標籤添加額外的類並調整任何CSS以便頁面使用它是很容易的。

您仍然可以將該CSS放入唯一頁面的文件中(以幫助維護),並將其導入到您的主文件中。

一般來說,除非CSS的變化是巨大的,我會嘗試將它們合併到主CSS,否則去選擇1

5

在Rails 3.1中,application.css旨在用作清單文件。您不應該重命名它,也不應該將內容放入它中,除了需要或包含指令。

爲您的目的使用不同的文件名。

另請注意,SCSS @import syntax這就像使用部分。如果您想要@import application,則要導入的文件應稱爲_application,而不是application

+0

那麼我想的問題是,如何使不同的清單文件爲不同的CSS集? –

相關問題