我通过以下方式成功设置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?
答案 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