2

我已经安装了less-rails gem,因为我热衷于使用 LESS 提供的颜色处理。我需要从我的数据库中提取一种颜色作为我的主题基色,并从那里建立。

我有静态 CSS,并将其重命名为 styles.css.less 以确保 rails 理解 less 扩展,它看起来。

我尝试的下一件事是将文件也包装为 erb,希望允许 ruby​​ 字符串文字在发送到 LESS 之前进行处理,并最终输出为有效的 CSS(我还在吗?)

该文件现在称为 style.css.less.erb。虽然文件 simple 包含有效的 CSS,但文档的处理工作正常。一旦我添加了一个红宝石字符串文字,它就会失败。

color: #{"#112233"};

在 chrome 调试器中,此行之后没有任何内容被处理。

我做错了什么,我应该怎么做我想做的事?

4

1 回答 1

1

正如 Chowlett 在评论中所说,您应该使用 erb 语法:<%= "#112233" %> 下一步是从 db 获取该值。如果此颜色值是应用程序范围内的,则可能您正在寻找 db 解决方案中的设置。我为此使用rails-settings-cached gem。您的结果代码看起来像

color: <%= Setting.foo_color %>

如果您在生产中使用资产,请不要忘记在每次设置更改后重新编译它们。

如果它不是一个设置,但可能是每个用户特定的东西,那么你不能为此使用应用程序范围的 css 文件,但你可以在视图中编写内联 css。

于 2012-04-13T12:15:58.930 回答