Play Framework不会更改公共文件

时间:2015-09-30 09:43:30

标签: playframework gulp

我正在使用scala play framework [2.4.2]来构建带有Angular的单页面应用程序的后端。我将所有前端内容放在自己的文件夹中,并使用gulp.js编译和最小化资产。

每次更改后,我的前端都会重新编译成

 /ui/dist/assets

我已将此添加到我的build.sbt

unmanagedResourceDirectories in Assets += baseDirectory.value / "ui/dist/assets"

然后在我的路线中我这样做:

GET         /assets/*file                        controllers.Assets.at(path="/public", file)

这一切都很好,除非我对文件进行更改并且重建后播放将找不到新文件。它们将存在于ui assets目录中,但我的浏览器中会出现404错误。重新开始播放将修复它,如果播放逐步编译(当gulp运行时没有完成),那么事情就可以了。

文档提到资产被打包到应用程序Jar文件中,并且在重建之前它会发生错误。但有没有办法强迫这个?自动增量器无法获取更改。

1 个答案:

答案 0 :(得分:0)

呃,所以我在尝试找到一个解决方案时遇到了很多麻烦,你可以在播放的类路径中添加另一个文件夹。这无论如何都不理想,因为开发人员显然不希望类路径中的资产

想出了这个黑客。基本上只是触摸类路径中的文件强制重新加载。

在构建之后的gulpfile中:

gulp.task('reload', [], function() {
  fs.closeSync(fs.openSync('../conf/test', 'w'));
});