11 Mar 2025
Starter Kit
Wagtail の公式ページで紹介されている Starter Kit について。
概略
Stater Kit のディレクトリ構成は、標準的な Wagtail ディレクトリ構成と少し違っています。
まず templates
と static
の各ディレクトリの位置ですが、wagtail start
で作成したプロジェクトでは Django の標準的なレイアウトとなり、各アップリケ−ションのディレクトリの下に関連する templates
ディレクトリと static
ディレクトリを配置するのが基本ですが、 Stater Kit の場合はプロジェクトディレクトリ(manage.py が置かれているディレクトリ)直下に配置され、そこに全ての template、static ファイルが置かれることになります。(もちろんアプリケーション ディレクトリの下に置くことも可能と思いますが)
static ファイル関連のディレクトリは static_src
、static_compiled
、static
の3つが存在し、開発環境では static_compiled
、本番環境では static
ディレクトリが参照されます。
流れとしては、static_src
ディレクトリのファイルを編集し、それを npm run build:prod
を実行してでコンパイルされたものが static_compiled
に格納され、更に本番環境では、 python manage.py collectstatic
で static
ディレクトリにコピーされる感じです。
python manage.py collectstatic
で static
ディレクトリにコピーされるときに、もとのファイル名にランダムな文字列が付加された形で保存されます。テンプレートファイルの {% static '*******' %}
タグで指定されたファイル名と、static
ディレクトリ内の文字列が付加されたファイルの対応は、同じ static
ディレクトリ内にある staticfiles.json
に記述されているようで、この情報はwebサーバーを再起動すると反映されます。(そのままでいずれ更新されるのかは現在のところ確認が取れていません)
つぎに、Stater Kit 独自のものではなく Wagtail の仕様となりますが、settings.py
が base.py
、dev.py
、production.py
の3つのファイルに分かれており、開発環境(python manage.py runserver
を起動)では、まず dev.py
が読み込まれ、そこから base.py
が読みこまれ、本番環境では production.py
から base.py
が読み込まれる形となります。