资产管道sass导入无效

时间:2013-06-24 19:01:14

标签: css ruby-on-rails sass asset-pipeline

我正在使用sass导入来处理我的rails 3.2应用程序的大多数样式。我的application.css.scss文件如下所示:

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";

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

_variables.css.scss(已导入)包含$ body-bg,并在_style-clean.css.scss中引用

我最初在sass语法中有这个,但每次我们推送到dev服务器时,我们都会收到Sass :: SyntaxError - Undefined variable:“$ body-bg”的错误。变量在变量文件中声明,错误来自_style-clean scss文件。我把这个变量放到了样式清理文件中,但后来我得到了另一个变量错误,但它引用了排版文件中的一个,它位于样式清理之上,让我想到某种方式资产正在预先编译后再添加。

我想回到使用sass语法,但scss和sass都会抛出变量错误。

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

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

资产管道依靠application.css告诉它要包含哪些文件。将其更改为SASS可能不会允许它工作。

此外,您的application.css需要告诉Ruby在哪里查找文件:

/*
 * 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风格也是如此。