是否可以将application.css更改为application.css.sass?

问题描述:

我想将我的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" 

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

在Rails 3.1中,application.css旨在用作清单文件。您不应该重命名它,也不应该将内容放入它中,除了需要或包含指令。

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

另请注意,SCSS @import syntax这就像使用部分。如果您想要@import application,则要导入的文件应称为_application,而不是application

+0

那么我想的问题是,如何使不同的清单文件为不同的CSS集? –

你应该改变它application.scss :)

请检查这两个RailsCasts:

http://railscasts.com/episodes/279-understanding-the-asset-pipeline

http://railscasts.com/episodes/282-upgrading-to-rails-3-1

+1 Simone的建议

+1

为我修好了。一个恼人的小问题! –

+0

也为我修好了。谁会知道? – Arcolye

+0

我的另一个+1。救了我困扰进口:) –