HugoでJavaScriptやCSSを圧縮する方法
目次
はじめに
HugoでJavaScriptやCSSを圧縮する方法のメモです。
Hugoでは、組み込み関数のresources.Minify
を使用することでJavaScriptやCSSを圧縮する事ができます。
JavaScriptやCSSを圧縮する手順
アセットディレクトリの作成
resources
関数で扱うアセットはアセットディレクトリ(/assets
)に保存する必要があります。
アセットディレクトリはデフォルトでは作成されないため、Hugoプロジェクトのルートディレクトリにassets
フォルダーを作成します。
Hugoプロジェクト/
├── archetypes/
│ └── default.md
├── assets/
├── content/
├── data/
├── layouts/
├── public/
├── static/
├── themes/
└── hugo.toml
JavaScript、CSSの配置
assets
フォルダーに圧縮したいJavaScriptファイルやCSSファイルを配置します。
(assets
フォルダー内にサブフォルダーを作成して配置しても問題有りません。)
assets/
└── css/
└── sample.css
上記はassets
フォルダー内にcss
フォルダーを作成して、sample.css
を配置しています。
テンプレート修正
Hugoのテンプレートファイル(layouts\_default\baseof.html
)の<head>
タグ内にコードを追加します。
{{- with resources.Get "css/sample.css" }}
{{- with . | minify }}
<link rel="stylesheet" href="{{ .RelPermalink }}">
{{- end }}
{{- end }}
上記はresources.Get
でグローバルリソース(sample.css
)を取得し、minify
で圧縮しています。
hugo server
コマンドでHTMLを出力すると、CSSファイルが圧縮され、sample.min.css
という名前でリンクが作成されます。
<link rel="stylesheet" href="/css/sample.min.css">