【发布时间】:2014-02-07 00:19:18
【问题描述】:
在我们的应用中,我们有不同的诊所,所有的患者页面都嵌套在一个有品牌的诊所下。我们有 100 多家诊所,所以我宁愿在我的 application.html.haml 文件中没有类似 = stylesheet_link_tag #{@clinic.name}_theme 的内容,并有一个类似的主题文件
// clinic_a.css.sass
a
color: red
// clinic_b.css.sass
a
color: blue
我宁愿在我的所有 Sass 文件中使用颜色变量,然后在根据诊所调用的单独工作表中定义这些变量(例如,由参数找到)。所以:
// application.css.sass
a
color: $link_color
h1
color: $neutral_color
// clinic_a.css.sass
$link_color: #faa
$neutral_color: #ccc
// clinic_b.css.sass
$link_color: #96c7c7
$neutral_color: #bababa
问题是,似乎变量必须首先出现在资产管道中,因此必须在我的 application.css.sass 文件中的其他文件之前声明它们。但显然,该文件无权访问参数或任何内容。
如何根据参数决定要加载哪些变量文件,然后在我的 application.css.sass 文件以及其中包含的文件中评估哪些变量文件?
编辑
需要明确的是,这必须与 Rails 的资产管道一起使用。
【问题讨论】:
-
您总是可以将其设为 erb 文件,尽管我不认为这是最好的方法。
标签: ruby-on-rails sass asset-pipeline