【问题标题】:Substitute simple variables in static assets替换静态资产中的简单变量
【发布时间】:2012-11-10 23:01:40
【问题描述】:

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

【问题讨论】:

    标签: playframework playframework-2.0 sbt


    【解决方案1】:

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

    【讨论】:

    • 现在不行了,我试过了,什么也没做。
    【解决方案2】:

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

    【讨论】:

    • 这不适用于静态资产——除非有办法在构建时评估模板?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    相关资源
    最近更新 更多