Playframework Java Play sbt摘要,用于通过内容更改缓存js文件
我正在从事一个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中: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 我补充
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]){
}否则{
}