Fingerprinting and SRI
Fingerprinting and SRI can be applied to any asset file using resources.Fingerprint
which takes two arguments, the resource object and a hash function.
The default hash function is sha256
. Other available functions are sha384
(from Hugo 0.55
), sha512
and md5
.
Any so processed asset will bear a .Data.Integrity
property containing an integrity string, which is made up of the name of the hash function, one hyphen and the base64-encoded hash sum.
{{ $js := resources.Get "js/global.js" }}
{{ $secureJS := $js | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $secureJS.Permalink }}" integrity="{{ $secureJS.Data.Integrity }}"></script>