Hugoで画像はどこのディレクトリに置くと良いのか

Hugoで記事に画像を使いたいときはどのディレクトリに置けばいいのか。結論としては記事ディレクトリ配下

Hugoの記事で画像を使いたいとき、どこのディレクトリに置けばいいのかはっきりと分からない問題を解決。
候補は以下の3つあたり。

  • 記事のディレクトリの下 content/
  • assets/
  • static/

結論:記事ディレクトリが原則

結論から書くと 記事ディレクトリの下 がよさそうだった。
Hugoの場合は、 content/page/xxx/content/post/xxx/ あたりになる。

ドキュメントはこちら。
https://gohugo.io/content-management/page-resources/

ページに属するリソース(画像など)はページバンドルに従い、同階層のディレクトリからしかアクセスできないようになる。
グローバルにアクセスさせないような画像であれば、ページのディレクトリに置くのがいい。

assetsとstaticディレクトリについて

2つのディレクトリの役割を見ていく。

assets

ドキュメントはこちら。
https://gohugo.io/hugo-pipes/introduction/

Hugo Pipes is Hugo’s asset processing set of functions.

と言われてもピンとこない。。。

you can mount any directory into Hugo’s virtual assets folder using the Mount Configuration.

とあるので、おそらく assets ディレクトリに配置されたリソースは仮想的なディレクトリに配置される。
any directory とあるので、その仮想的なディレクトリにあるリソースは使いたいときに使えるようになるのだと思う。

static と違い、デフォルトではどこからもアクセスできないのだろうと理解した。
使いたくなった時に確かめてみる。

static

ドキュメントはこちら。
https://gohugo.io/content-management/static-files/

staticディレクトリに置いたリソースはウェブサイトのルートにそのまま配置される。
つまり次の形でどこからでもアクセスできる。(BASE_URL/resource_name.extention)

CSSやJavaScriptや画像などのうち、全ての場所で読み込みたいものはここに配置するとよさそう。
favicon.ico などはここ。

終わりに

記事で使うリソースは、グローバルスコープでないなら記事ディレクトリ配下に置こう。

のんびり生きていきたい。
Image by Freepik
Built with Hugo
Theme Stack designed by Jimmy