我通过以下操作成功地在我们的公共资产上设置了scala(播放框架)指纹:
插件.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.0.0")
build.sbt
pipelineStages := Seq(digest, gzip) // added digest
路由
Setup relevant route for public /*files
这将在页面中产生如下内容来源:
/样式表/730252eec90cb8dab9c4a8a5ee7277ac styles.min.css"
我的问题是这种MD5散列在未来会如何改变。它是否取决于build.sbt中的"版本"?还是每次重新部署时都会自动更新?
version := "1.0-SNAPSHOT" // Do I need to change this each time i redeploy?
虽然sbt-digest
插件内置了许多非常聪明的更改检测功能,但如果我们查看sbt摘要的源代码,我们可以看到它实际上依赖于Ivy助手类来执行摘要计算,而该助手只使用每个File
的内容来计算摘要。
这意味着,只要给定资产的内容保持不变(以及你的摘要算法,例如md5
),你就可以在文件系统和/或URI路径上移动它,它仍然会有相同的"文件名"——这是一个很好的属性。
因此,如果您决定在stylesheets
中引入一个新的main
子目录,您的HTML将从:
/stylesheets/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css
至
/stylesheets/main/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css