Scala播放公共资产指纹版本



我通过以下操作成功地在我们的公共资产上设置了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

最新更新