Scala Play Public 资产指纹识别版本
Scala Play Public Asset Fingerprinting Version
我已经通过执行以下操作在我们的 public 资产上成功设置了 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 hash以后会怎么变化。是否依赖于build.sbt中的'Version'?或者它会在您每次重新部署时自动更新吗?
version := "1.0-SNAPSHOT" // Do I need to change this each time i redeploy?
虽然 sbt-digest
插件内置了许多非常聪明的变化检测功能,但如果我们查看 source for sbt-digest, we can see that it actually relies on an Ivy helper class 来执行摘要计算,并且该助手仅使用 每个File
的内容来计算摘要。
这意味着只要给定资产的内容保持不变(以及您的摘要算法,例如 md5
),您就可以在文件系统 and/or 上移动它URI 路径,它仍然具有相同的 "filename" - 一个不错的 属性.
因此,如果您决定在 stylesheets
中引入一个新的 main
子目录,您的 HTML 来自:
/stylesheets/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css
到
/stylesheets/main/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css
我已经通过执行以下操作在我们的 public 资产上成功设置了 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 hash以后会怎么变化。是否依赖于build.sbt中的'Version'?或者它会在您每次重新部署时自动更新吗?
version := "1.0-SNAPSHOT" // Do I need to change this each time i redeploy?
虽然 sbt-digest
插件内置了许多非常聪明的变化检测功能,但如果我们查看 source for sbt-digest, we can see that it actually relies on an Ivy helper class 来执行摘要计算,并且该助手仅使用 每个File
的内容来计算摘要。
这意味着只要给定资产的内容保持不变(以及您的摘要算法,例如 md5
),您就可以在文件系统 and/or 上移动它URI 路径,它仍然具有相同的 "filename" - 一个不错的 属性.
因此,如果您决定在 stylesheets
中引入一个新的 main
子目录,您的 HTML 来自:
/stylesheets/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css
到
/stylesheets/main/730252eec90cb8dab9c4a8a5ee7277ac-styles.min.css