やりたいこと
Hugoのテンプレートで、 静的ファイルに対して、キャッシュバスティングを行う方法です。
前提条件
Hugo 0.43以降が必要です。
概要
Hugo 0.43から導入された、Hugo Pipes機能を使用します。
手順
例として、static/js/foo.js
に組み込む手順を記載します。
- ファイルを
assets
ディレクトリに移動します。パスはassets/js/foo.js
になります。 - テンプレートファイルに以下のように記載します1。
{{- $js := resources.Get "js/foo.js" | fingerprint -}}
<script src="{{ $js.RelPermalink }}"></script>{{ "" -}}
補足
この記事では別の解決方法を書いていましたが、その記述は削除しました。 何が書いてあるか知りたい場合は魚拓を参照してください。
-
最後の
{{ "" -}}
は、改行を取るための手法です。参考→出力されるHTMLを整形する ↩︎
外部サイト
- Add integrity, fingerprint etc. filters for resources by bep · Pull Request #4429 · gohugoio/hugo
- Add resource func etc. · Issue #4381 · gohugoio/hugo
マニュアル
- Hugo
- cache-busting: まだありません。