メインコンテンツまでスキップ

ファイル名にハッシュ値を付加せずにビルドする

はじめに​

Docusaurusで構築したウェブサイトでZIPファイルを配布したいとき、ZIPファイルのファイル名が意図しない乱数文字列に置き換わっていて困ったことはありませんか?

Docusaurusでは、staticフォルダに入れたファイルはそのままビルド出力されるのではなく、ファイル名にハッシュ値を付加した新しいファイルとしてビルド出力されます。ウェブブラウザが(このサイトは更新されていない)と誤解してキャッシュデータを表示してしまうことを回避する目的らしいですが、ZIPファイルを配布したいときビルドのたびにファイル名を変えられては困ります。

ファイル名を書き換えて欲しくない場合は、[pathname]を使うことでファイル名書き換えをやめさせることができます。

[pathname]を使ってZIPファイルのURLを記述する​

手順​

例として、staticフォルダの下にarchiveフォルダを置き、archiveフォルダの中にZIPファイルexample.zipを置く前提で説明します。

書類/
└─Docusaurus/
  └─mysite/
    ├─blog/
    ├─docs/
    ├─src/
    ├─static/
    │ ├─img/
    │ └─archive/
    │   └─example.zip
    :
  1. ZIPファイルをarchiveフォルダ内に入れる
  2. 原稿(mdファイル)のZIPファイルへのリンクURLを記述したい箇所に以下の文字列を書き込む
    [タイトル](pathname:///archive/example.zip)
  3. ビルドする
  4. buildフォルダ内のファイルフォルダ一式をサーバーにアップロードする
  5. 了

備考​

[pathname]を使っても使わなくとも、元のファイル名そのままのファイルは、ビルド出力されたファイルフォルダ一式の中に含まれています。

[pathname]を使わない場合、たとえばstatic直下のimgフォルダ内に入れておいた画像ファイルは、まず元のファイル名そのままのファイルがbuild直下のimgフォルダ内にビルド出力され、さらにファイル名にハッシュ値の付加されたファイルがbuild/assets/imagesフォルダ内にビルド出力されます。

おわりに​

ZIPファイルに限らず、滅多に更新しない画像ファイルも、[pathname]を使うことでウェブブラウザにキャッシュ利用を促すことができます。

以上​