替换静态资产中的简单变量

时间:2012-11-10 00:58:17

标签: playframework playframework-2.0 sbt

我想在构建时用静态资产(html,css,js)替换一些简单变量(例如版本号或CDN URL前缀)。播放2.x本身无法做到这一点,但也许有一个通用的sbt任务在文件中进行变量插值?

2 个答案:

答案 0 :(得分:2)

您可以使用sbt-editsource插件。它在源文本上执行简单的变量替换。您需要将sources目录设置为静态资产所在的位置。这是detailed guide

答案 1 :(得分:0)

虽然我不知道你的需求,而且Kim的答案很好,你也可以通过application.conf +小解析方法配置CDN:

conf/application.conf

cdn.cdn1="http://cdn1.domain.tld/"
cdn.cdn2="http://cdn2.domain.tld/"

Application.java

public static String cdnResource(String cdnId, String filePath) {
    return Play.application().configuration().getString("cdn."+cdnId) + filePath;
}

用法:

<script src='@Application.cdnResource("cdn1", "bootstrap/js/bootstrap.min.js")' type="text/javascript"></script>
...
<img src='@Application.cdnResource("cdn2", "template/images/logo.png")' alt="" >