11 Mar 2025

Starter Kit

Wagtail の公式ページで紹介されている Starter Kit について。

概略

Stater Kit のディレクトリ構成は、標準的な Wagtail ディレクトリ構成と少し違っています。

まず templatesstatic の各ディレクトリの位置ですが、wagtail start で作成したプロジェクトでは Django の標準的なレイアウトとなり、各アップリケ−ションのディレクトリの下に関連する templates ディレクトリと static ディレクトリを配置するのが基本ですが、 Stater Kit の場合はプロジェクトディレクトリ(manage.py が置かれているディレクトリ)直下に配置され、そこに全ての template、static ファイルが置かれることになります。(もちろんアプリケーション ディレクトリの下に置くことも可能と思いますが)

static ファイル関連のディレクトリは static_srcstatic_compiledstatic の3つが存在し、開発環境では static_compiled、本番環境では static ディレクトリが参照されます。

流れとしては、static_src ディレクトリのファイルを編集し、それを npm run build:prod を実行してでコンパイルされたものが static_compiled に格納され、更に本番環境では、 python manage.py collectstaticstatic ディレクトリにコピーされる感じです。

python manage.py collectstaticstatic ディレクトリにコピーされるときに、もとのファイル名にランダムな文字列が付加された形で保存されます。テンプレートファイルの {% static '*******' %} タグで指定されたファイル名と、static ディレクトリ内の文字列が付加されたファイルの対応は、同じ static ディレクトリ内にある staticfiles.json に記述されているようで、この情報はwebサーバーを再起動すると反映されます。(そのままでいずれ更新されるのかは現在のところ確認が取れていません)

つぎに、Stater Kit 独自のものではなく Wagtail の仕様となりますが、settings.pybase.pydev.pyproduction.py の3つのファイルに分かれており、開発環境(python manage.py runserver を起動)では、まず dev.py が読み込まれ、そこから base.py が読みこまれ、本番環境では production.py から base.py が読み込まれる形となります。