首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我需要在所有的sass文件中使用“@import compass”来进行预编译?

为什么我需要在所有的sass文件中使用“@import compass”来进行预编译?
EN

Stack Overflow用户
提问于 2012-04-21 01:16:52
回答 2查看 1.6K关注 0票数 2

我使用的是Rails和Compass。在我部署到生产环境之前,一切都运行得很好,在这一点上我达到了:

代码语言:javascript
复制
bundle exec rake RAILS_ENV=staging RAILS_GROUPS=assets assets:precompile'
 ** rake aborted!
 ** Undefined mixin 'column'.
 ** (in /....../app/assets/stylesheets/clients.css.sass)

application.css.sass

代码语言:javascript
复制
@import compass
@import _blueprint
@import "compass/layout/sticky-footer"
@import "compass/css3/gradient"
@import "partials/_base"
@import "blueprint/reset"
@import "blueprint/colors"
@import "blueprint/grid"
@import "blueprint/fancy-type"
@import "blueprint/scaffolding"
@import "blueprint/form"
@import "clients"

clients.css.sass

代码语言:javascript
复制
#clients
  +column(4)

所以你可以看到clients.css.sass没有导入指南针,蓝图等,b/c它是由application.css.sass导入的。但是为什么asset编译器试图自己编译这个文件呢?我可以通过在每个css.sass文件中添加“@import compass”来修复它,但似乎不应该这样做。

EN

回答 2

Stack Overflow用户

发布于 2012-04-21 01:26:17

确保您的应用程序清单不包含require_tree .或类似内容。如果链轮需要在sass导入之外的文件,则将始终引发此错误。一开始我遇到了很多麻烦。

如果不是这样,您使用的是什么版本的Rails?在早期的Rails 3.1.x中,rake预编译存在一些问题,这些问题后来得到了修复……

票数 3
EN

Stack Overflow用户

发布于 2012-04-21 21:29:28

我发现在Rails和Asset Pipeline中,您需要使用部分表示法来@import指南针和蓝图的子元素。要让column函数正常工作,您需要:

代码语言:javascript
复制
@import "blueprint/_grid"

顺便说一句,你为什么没有在前两行使用引号的任何原因--我本以为以下是必需的:

代码语言:javascript
复制
@import "compass"
@import "blueprint"

虽然在本例中不是100%确定blueprint行是否需要前导_,但我在Rails3.2.3中绝对导入了没有它的compass

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10250654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档