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>

雖然此功能最常用於 CSS 和 JavaScript 資源,但您也可以將 resources.Fingerprint 函數應用於任何資源類型。

哈希算法可以是 md5sha256(預設)、sha384sha512

在加密地哈希資源內容後:

  1. .Permalink.RelPermalink 方法返回的值會包含哈希總和。
  2. 資源的 .Data.Integrity 方法會返回一個 子資源完整性(SRI)值,該值由哈希算法的名稱、一個連字號和 base64 編碼的哈希總和組成。