resources.Fingerprint
返回带指纹的资源,它由给定资源的内容做密码学哈希得到。
{{ with resources.Get "js/main.js" }}
{{ with . | fingerprint "sha256" }}
<script src="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous"></script>
{{ end }}
{{ end }}Hugo 渲染出的结果大致如下:
<script src="/js/main.62e...df1.js" integrity="sha256-Yuh...rfE=" crossorigin="anonymous"></script>尽管 resources.Fingerprint 函数最常用于 CSS 与 JavaScript 资源,但任何类型的资源都可以使用它。
哈希算法可以是 md5、sha256(默认)、sha384 或 sha512 之一。
对资源内容做密码学哈希之后:
Permalink与RelPermalink方法返回的值包含哈希和- 资源的
.Data.Integrity方法返回一个子资源完整性(SRI)值,由哈希算法名、一个连字符以及 base64 编码的哈希和组成