是否可以动态加载SASS文件?
假设我在Rails Initializer BRAND
中声明了一个全局常量。我想要的是,导入一个具有常量BRAND
中指定名称的SASS文件。
我想在“application.sass”中找到类似@import BRAND
的内容。请告诉我怎么可能。感谢名单。
答案 0 :(得分:1)
您可以将多个预处理器与资产管道配合使用,从而在SASS处理器发挥作用之前使用ERB
。为此,只需将.erb
附加到要预处理的文件的文件名即可。例如:
配置/初始化/ brand.rb:
BRAND = 'mybrand'
应用程序/资产/样式表/ _mybrand.css.scss:
$brand-color: steelblue;
应用程序/资产/样式表/ main.css.scss.erb:
@import '<%= BRAND %>';
body {
background: $brand-color;
}
顺便说一下,在使用SASS时,不应使用Sprockets'require
指令,如Rails Guide on the Asset Pipeline所示:
如果你想使用多个Sass文件,你通常应该使用 Sass @import规则而不是这些Sprockets指令。运用 Sprockets指令所有Sass文件都存在于自己的范围内, 使变量或混合仅在文档中可用 在。中定义。
答案 1 :(得分:0)
你可以在你的(haml)布局文件中这样做:
= stylesheet_link_tag BRAND, :media => 'all'
(如果使用ERB,则使用额外的&lt; %%&gt;)。