Playframework Java Play sbt摘要,用于通过内容更改缓存js文件

Playframework Java Play sbt摘要,用于通过内容更改缓存js文件,playframework,playframework-2.0,Playframework,Playframework 2.0,我正在从事一个java play 2.5.x项目,其中webpack是客户端构建工具,它生成app.js和vendor.js 我试图让play框架对文件应用某种浏览器缓存,这意味着我希望当app.js和vendor.js文件没有更改时,play以304 Not Modified头响应。当进行更改时,我希望它使客户端浏览器中缓存的文件无效 我尝试在游戏中添加sbt digest插件,但在我使用webpack再次构建文件后,play的响应是200 OK,而不是304 not Modified 我补充

我正在从事一个java play 2.5.x项目,其中webpack是客户端构建工具,它生成app.js和vendor.js

我试图让play框架对文件应用某种浏览器缓存,这意味着我希望当app.js和vendor.js文件没有更改时,play以304 Not Modified头响应。当进行更改时,我希望它使客户端浏览器中缓存的文件无效

我尝试在游戏中添加sbt digest插件,但在我使用webpack再次构建文件后,play的响应是200 OK,而不是304 not Modified

我补充说: 在build.sbt中:

lazy val root = (project in file("."))
  .enablePlugins(PlayJava, SbtWeb)
  .settings(jacoco.settings: _*)

pipelineStages in Assets := Seq(digest)
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1")
在plugins.sbt中:

lazy val root = (project in file("."))
  .enablePlugins(PlayJava, SbtWeb)
  .settings(jacoco.settings: _*)

pipelineStages in Assets := Seq(digest)
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1")
路线:

GET /cmtb/assets/*file  controllers.Assets.versioned(path="/public", file: Asset)
main.scala.html中

if(appConfig.get(ApplicationController.WEBPACK_DEV_SERVER_ENABLED).asInstanceOf[Boolean]) {
    <script src="http://localhost:8080/dist/app.js"></script>
} else {
    <script src="@routes.Assets.versioned("client/dist/vendor.js")"></script>
    <script src="@routes.Assets.versioned("client/dist/app.js")"></script>
}
if(appConfig.get(ApplicationController.WEBPACK\u DEV\u SERVER\u已启用)。asInstanceOf[Boolean]){
}否则{
}