2013-06-24 23 views
2

我使用sass导入来处理我们的rails 3.2应用程序的大部分样式。我application.css.scss文件看起来像这样:资产管道sass导入不起作用

application.css

/* 
*= require_self 
*= require_tree ./vendor 
*= require admin 
*/ 

admin.css.scss

// Reset 
@import "global/reset"; 

// General Variables 
@import "admin/general/_variables"; 

// Main Elements 
@import "admin/general/_typography"; 

// Layout 
@import "global/_layout"; 
@import "admin/general/_gridset"; 

// Modules 
@import "admin/modules/_table"; 
@import "admin/modules/_forms"; 
@import "admin/modules/_buttons"; 

// Styles 
@import "admin/_style-clean"; 
@import "admin/_style-images"; 

// Features 
@import "admin/features/features"; 

错误消息:萨斯:: SyntaxError错误 - 未定义的变量:“$身体BG”。 (在/var/www/apps/dev_wbs/releases/20130624191222/app/assets/stylesheets/admin/_style-clean.css.scss)

_variables.css.scss(进口)包含$身体-BG,并且它在_style-clean.css.scss中被引用

我最初在sass语法中有这个,但是每次我们推送到dev服务器,我们都会得到一个Sass :: SyntaxError错误 - 未定义的变量:“$身体BG”。变量在变量文件中声明,错误来自_style-clean scss文件。我已经将这个变量放到了style-clean文件中,但是后来我又遇到了一个变量错误,但是它指的是排版文件中的一个,它在style-clean之上,这让我觉得资产正在预先处理,编译并添加。

我想回到使用sass语法,但scss和sass都会引发可变错误。

所有单个文件当前格式为:_variables.css.scss。

任何帮助,将不胜感激!

回答

1

资产管道依赖于application.css来告诉它要包含哪些文件。将其更改为SASS可能不会允许该功能起作用。

此外,您application.css需要告诉红宝石到哪里寻找文件:

/* 
* This is a manifest file that'll be compiled into application.css, which will include  all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the top of the 
* compiled file, but it's generally better to create a new file per style scope. 
* 
*= require_self 
*= require_tree . 
*/ 

如果你把你在你的问题将代码粘贴到像global.css.scss一个新的文件,并重新创建application.css/app/assets/stylesheets/你应该与上面的代码和SASS风格的比赛。

+1

糟糕,我离开了我的剪辑顶部。我有自己的需求,但不是树,因为我不希望application.css预编译所有的资产,我宁愿指定顺序,以及在一个文件中使用所有优秀的sass功能,而不是在他们全部。 – Spentacular

+0

在这种情况下,最好将它们分开。它使得文件更易于编辑,而更多的开发人员加入该项目则难以完成。 –

+0

我已经将其添加到一个单独的文件,所以现在我有了一个普通的application.css.scss文件: /* * = require_self * =需要./admin */ 但我在推送到dev时仍然出现变量错误(对不起,忘了我不能在此嵌套代码) – Spentacular