基于scala变量在LESS中定义的切换颜色 - 在不同环境中切换颜色主题

时间:2013-07-30 14:51:25

标签: scala playframework-2.0 less

我试图在我的3种环境中使用不同的颜色主题:dev(绿色),uat(蓝色)和prod(红色)。

我想知道是否可以在global.scala中读取scala中的环境变量

override def onStart(app: Application) {
  val env = System.getenv("SYSTEM_ENV")    //{DEV|UAT|PRD}
} 

然后在我拥有的LESS文件上做一些事情,myTheme.LESS

@basecolor: #3B6A52;

将从我的其他CSS / LESS文件中读取,作为基本背景基色

我可以在这里使用一些逻辑来确定scala变量的颜色吗? 例如如果开发然后绿色其他如果......等等

或者如果我可以有3个mytheme文件,例如mythemeRed.LESS,mytmemeBlue.LESS可以通过播放来决定只阅读其中一个。

请给我一些启示,欢迎任何想法。

1 个答案:

答案 0 :(得分:0)

我认为以这种方式混合javascript和LESS是不可能的。我会做类似的事情:

if (env === "DEV"){
    var styleRef = document.createElement("link");
    styleRef.setAttribute("rel", "stylesheet");
    styleRef.setAttribute("type", "text/css");
    styleRef.setAttribute("href", "dev-style.css");
    document.getElementsByTagName("head")[0].appendChild(styleRef);
}
else if (env === "UAT"){
...
}

等等。然后,您可以根据您的环境获取正确的已编译CSS文件。