所以,我有一个app/assets/stylesheets/
目录结构,看起来像这样:
|-dialogs
|-mixins
|---buttons
|---gradients
|---vendor_support
|---widgets
|-pages
|-structure
|-ui_elements
在每个目录中,有多个sass部分(通常是* .css.scss,但是一个或两个* .css.scss.erb)。
我可能有很多假设,但是rails应该由于*= require_tree .
application.css中的内容而自动编译那些目录中的所有文件,对吗?
我最近尝试通过删除所有颜色变量并将它们放在根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如何处理资产编译的顺序,但是显然这对我不利。似乎没有文件意识到要导入任何变量或mixins,因此会引发错误,因此我无法编译。
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
正在导入颜色和所有我的mixins。但是显然,rails没有得到该备忘录。
有什么办法可以解决这些错误,还是需要将所有变量定义以及所有mixin导入放回到每个文件中?
不幸的是,这个家伙似乎并不认为有可能,但我希望他错了。任何想法都将不胜感激。