Hugo における static フォルダとビルド
Hugo における static
ディレクトリの挙動についてまとめ,どのように使うかを考える。
このウェブサイトは Hugo で作っている。Hugo にはいくらか癖があり,content
ディレクトリと static
ディレクトリがビルドにあたって処理されるときのタイムスタンプもその一つである。
まず,Hugo では変換処理を求めないファイルは static
ディレクトリに置くことになっている。この例外として,記事ごとにファイルを管理するための page bundle という仕組みがあるが,これは勧めない。試したところ,page bundle 内のファイルがコピーされるにあたってタイムスタンプが新しくなってしまう。つまり,ミラーリングアップロードにおいて,ファイルサイズを見ずに日付だけを見る設定にしていれば,ビルドのたびにアップロードすることになってしまう。一方,static
ディレクトリであればそのようなことは起こらない。
では,static
ディレクトリに置けばすべて上手くゆくかというとそうでもない。私は生徒向けに講義資料を載せる会員制ページを運用しているが,そのビルドに時間がかかるようになってきた。おそらく,static
ディレクトリにある大量の PDF ファイルを都度見ているのではないかと思われる。タイムスタンプは変わらないのでミラーリングアップロードでは無視してもらえるが,ビルドに負荷をかけるようではいただけない。
そこで,思い切って PDF ファイルは Hugo に任せずに直接 FTP でアップロードし,そこへリンクすることとしたい。これならば,Hugo が扱うのは軽い .md
ファイルがほとんどのままになるだろう。そもそも static
ディレクトリ内でバイナリファイルは扱っていたのだから,何かが大きく変わるわけでもない。もちろん,URL のルールと同じように,まずは年度で切ることとする。ファイル名の重なりも減らせるし,同じ趣旨の資料を(同じ授業をふたたび持つなどして)書きなおすことも年度ごとには起こりうるだろう。