5
Rails中正确的SCSS资产结构
所以,我有一个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导入放回到每个文件中? 不幸的是,这个家伙似乎并不认为有可能,但我希望他错了。任何想法都将不胜感激。