【发布时间】:2012-02-26 16:17:12
【问题描述】:
所以,我有一个看起来像这样的app/assets/stylesheets/ 目录结构:
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
在每个目录中,有多个 sass partials(通常是 *.css.scss,但有一个或两个 *.css.scss.erb)。
我可能做了很多假设,但是由于 application.css 中的 *= require_tree .,rails 应该自动编译这些目录中的所有文件,对吧?
我最近尝试通过删除所有颜色变量并将它们放在根 app/assets/stylesheets 文件夹 (_colors.css.scss) 中的文件中来重组这些文件。然后我在根 app/assets/stylesheets 文件夹中创建了一个名为 master.css.scss 的文件,如下所示:
// Color Palette
@import "colors";
// Mixins
@import "mixins/buttons/standard_button";
@import "mixins/gradients/table_header_fade";
@import "mixins/vendor_support/rounded_corners";
@import "mixins/vendor_support/rounded_corners_top";
@import "mixins/vendor_support/box_shadow";
@import "mixins/vendor_support/opacity";
我不太了解 rails 是如何处理资产编译的顺序的,但这显然对我不利。似乎没有一个文件意识到它们有任何变量或 mixin 被导入,因此它会引发错误并且我无法编译。
Undefined variable: "$dialog_divider_color".
(in /home/blah/app/assets/stylesheets/dialogs/dialog.css.scss.erb)
Undefined mixin 'rounded_corners'.
(in /home/blah/app/assets/stylesheets/widgets.css.scss)
变量$dialog_divider_color在_colors.css.scss中明确定义,_master.css.scss正在导入颜色和我所有的mixin。但显然 rails 没有得到那个备忘录。
有什么方法可以修复这些错误,还是我需要将所有变量定义放回每个单独的文件,以及所有 mixin 导入?
不幸的是,this guy 似乎不认为这是可能的,但我希望他是错的。任何想法都非常感谢。
【问题讨论】:
标签: css ruby-on-rails asset-pipeline sass