每当我对CSS文件进行更改时,Play框架都不会选择最新文件。它似乎已缓存旧版本并继续使用它。我怎么能强制该文件应该从服务器中挑选,而不是从浏览器缓存中挑选(或者从哪里挑选css,javascript文件)?
我在本地计算机上运行服务器并使用localhost:9000来访问服务器
答案 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>
因此它不会出现缓存问题,因为文件名在每次更新文件后都是新的。