在我们的应用程序中,我们有不同的诊所,所有患者页面都嵌套在一个有品牌的诊所。我们有100多个诊所,所以我宁愿在我的= stylesheet_link_tag #{@clinic.name}_theme
文件中没有类似application.html.haml
的内容,并且有一个类似
// clinic_a.css.sass
a
color: red
// clinic_b.css.sass
a
color: blue
我宁愿在我的所有Sass文件中使用颜色变量,然后在单独的工作表中定义这些变量,这些变量可以根据诊所进行调用(例如,参见params)。所以:
// 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
文件中的其他文件之前声明它们。但显然,该文件无法访问params或任何内容。
如何根据params确定要加载哪些变量文件,然后在我的application.css.sass
文件及其中包含的文件中对其进行评估?
需要明确的是,这必须与Rails的资产管道配合使用。
答案 0 :(得分:-1)
我不会加载不同的样式表,我会使用sass中的@if
函数来有条件地分配变量:
EXAMPLE
p {
@if 1 + 1 == 2 { border: 1px solid; }
@if 5 < 3 { border: 2px dotted; }
@if null { border: 3px double; }
}