1

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

4

2 回答 2

2

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

于 2012-11-10T06:58:42.037 回答
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="" >
于 2012-11-10T15:01:40.510 回答