Playframework 在静态资产中替换简单变量

Playframework 在静态资产中替换简单变量,playframework,playframework-2.0,sbt,Playframework,Playframework 2.0,Sbt,我想在构建时替换静态资产(html、css、js)中的一些简单变量(例如版本号或CDN URL前缀)。Play 2.x本身无法做到这一点,但也许有一个通用的sbt任务可以在文件中执行变量插值?您可以使用该插件。它对源文本进行简单的变量替换。您需要将sources目录设置为静态资产所在的位置。这是一个。虽然我不知道您的需要,而且Kim的答案可能足够好,但您也可以通过application.conf+小型解析方法配置CDN: conf/application.conf: cdn.cdn1="http

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

您可以使用该插件。它对源文本进行简单的变量替换。您需要将sources目录设置为静态资产所在的位置。这是一个。

虽然我不知道您的需要,而且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="" >

...

这对静态资产不起作用——除非有办法在构建时对模板进行评估?这现在不起作用,我已经尝试过了,但它没有任何作用。