【问题标题】:How to generate dynamically generated assets in Play 2.3 (so no compilation is triggered)?如何在 Play 2.3 中生成动态生成的资产(因此不会触发编译)?
【发布时间】:2014-08-01 14:46:03
【问题描述】:

如何修改 play 2.3 项目的构建配置以包含由某些任务动态生成的资产?

目标是实现与当前包含在app/assets 文件夹中的资产类似的东西:从某个地方获取一个文件,以某种方式对其进行转换(通常是编译它)并使其作为 /public 目录下的资产可用。 我已经尝试向compile 任务添加依赖项:

 compile in Compile <<= (compile in Compile) dependsOn Def.task {
    val file = //generate file

    IO.copyFile(file, baseDirectory.value / "public" / "foo.bar")
}

虽然此解决方案有效,但它会在编译期间复制文件,从而通知播放更改并因此安排新的编译,即在每次 http 请求时重新加载应用程序!

有没有其他方法可以添加新的动态资产,而不会陷入恶性重新加载循环?

【问题讨论】:

    标签: playframework sbt playframework-2.3


    【解决方案1】:

    您应该使用resourceGenerators 来管理生成资源的任务列表。

    【讨论】:

    • 感谢您的回答,我实际上也尝试过,并最终陷入了同样的恶性循环。事实证明,这实际上并不是一个恶性循环,而是 JNotify 的问题导致运行时多次重新加载。
    猜你喜欢
    • 2017-08-07
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多