Scala播放公共资产指纹版本

时间:2015-03-23 21:51:37

标签: scala playframework fingerprint

我通过以下方式成功设置scala(游戏框架)指纹识别我们的公共资产:

plugins.sbt

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

build.sbt

pipelineStages := Seq(digest, gzip) // added digest

路由

Setup relevant route for public /*files

这将产生类似页面源中的以下内容:

/stylesheets/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css"

我的问题是这个MD5哈希将来会如何变化。它取决于版本'在build.sbt?或者每次重新部署时它会自动更新吗?

version := "1.0-SNAPSHOT" // Do I need to change this each time i redeploy?

1 个答案:

答案 0 :(得分:1)

虽然sbt-digest插件内置了许多非常聪明的更改检测内容,但如果我们查看source for sbt-digest,我们可以看到它实际上依赖于Ivy helper class来执行摘要计算,该帮助程序仅使用每个File内容来计算摘要。

这意味着只要给定资产的内容保持不变(以及您的摘要算法,例如md5),您就可以在文件系统和/或URI路径上移动它'仍然会有相同的“文件名” - 一个不错的属性。

因此,如果您决定在main中引入新的stylesheets子目录,那么您的HTML将来自:

/stylesheets/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css

/stylesheets/main/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css