我可以根据 rails 配置设置更改 sass 变量吗

can i change a sass variable based on a rails config setting

我希望我的网站在从不同域加载时更改一些基本颜色。

现在我正在 Rails 初始化程序中设置一堆配置值,如下所示:

if `hostname` == 'example1.org'
    set_plaoul_config
elsif `hostname` == 'example2.org'
    set_gracilis_config
elsif `hostname` == 'example3.org'
    set_wodeham_config
else
    set_plaoul_config
end

此处引用的函数将设置各种 Rails.application.config 设置,请参见下面的代码片段:

Rails.application.config.biography = true
Rails.application.config.bibliography = true
Rails.application.config.timeline = true
Rails.application.config.about = true
Rails.application.config.blog = false

但我想知道是否有人能想出一种方法,我可以设置一个基本的配置设置来影响我的 sass 样式表中的全局 sass 变量。

例如:

Rails.application.config.dark-color = #BBCEBE

目前/app/assets/stylesheets/application.css.sass包含一些基本的主题变量,如下:

* site theme colors
$dark-color:                #BBCEBE
$light-color:               #E6EDE8
$text-color:                black
$text-bgcolor:              white

我希望有一种方法可以根据 Rails 应用程序初始化时设置的配置设置更改这些变量的值。

例如,我希望我可以在我的 Sass 文件中这样做:

    $dark-color: Rails.application.config.dark-color

(我知道我不能这样做,我只是想说明我想要的行为)

对我来说,问题是我看不到将 Rails 信息传递给 Sass 的方法。

想法?

参见:How can I use Ruby/Rails variables inside Sass?

只需将 .erb 添加到您的 sass 样式表文件名中。然后正常使用变量:

<%= Rails.application.config.dark-color %>