Play Framework没有选择Javascript和CSS的最新变化

时间:2017-03-20 17:41:38

标签: playframework

每当我对CSS文件进行更改时,Play框架都不会选择最新文件。它似乎已缓存旧版本并继续使用它。我怎么能强制该文件应该从服务器中挑选,而不是从浏览器缓存中挑选(或者从哪里挑选css,javascript文件)?

我在本地计算机上运行服务器并使用localhost:9000来访问服务器

1 个答案:

答案 0 :(得分:1)

您需要使用版本化资产。确保您在controllers.Assets.versioned中使用routes

GET     /assets/*file               controllers.Assets.versioned(path="/public", file: Asset)

在HTML模板中:

<script src="@routes.Assets.versioned("javascripts/hello.js")" type="text/javascript"></script>

不要忘记在build.sbt

中配置版本控制
// Production.
pipelineStages := Seq(digest) 

// Development.
pipelineStages in Assets := Seq(digest)

您需要在digist中启用project\plugins.sbt插件

addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1")

结果HTML:

<script src="/assets/javascripts/a7c0637aa0972b62ef0c436a66be57b1-hello.js" type="text/javascript"></script>

因此它不会出现缓存问题,因为文件名在每次更新文件后都是新的。