見出し画像

【IT】Djangoの静的ファイルのまとめ

皆さま
こんにちは

Djangoの静的ファイルについて
理解する為のまとめとなります。

開発環境配下での静的ファイルの置き場

(STATICFILES_DIRS と 各アプリ/static)

・settings.py配下の
STATICFILES_DIRS(環境変数)に設定したディレクトリ
・各アプケーション配下の/static/ディレクトリ
に設定したディレクトリをDjangoは、探します。

settings.pyに記載の例

STATIC_DIR = os.path.join(BASE_DIR, 'static_local')

# ローカル環境で{% static %}タグを使った際に見に行く先のフォルダ
# collectstaticを実行した際に見に行くフォルダ
# CSSファイル等を読み込む先
STATICFILES_DIRS = [
    STATIC_DIR,
]

各アプケーション毎で
静的ファイルを分ける場合は、
各アプケーションフォルダー配下に
staticフォルダーを配置し、CSSなど静的ファイルを保管します。

公開用の静的ファイルの集約先

(STATIC_ROOT)

Webサーバ(Nginxや Apache等)やWebサービスへディプロイする
場合に、静的ファイルを一ヶ所へ集約する必要があります。

settings.pyに記載の例

# 集約用のパス
# 読み込んだファイルをまとめて出力する先
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

ディプロイ時に以下のコマンドにて集約を行います。

python manage.py collectstatic


公開時の静的ファイルの参照先

(STATIC_ROOT)

Webサーバ(Nginxや Apache等)が静的ファイル見いく場所の
指定となります。

settings.pyに記載の例

# ブラウザ上でアクセスするためのURLパス
STATIC_URL = 'static/'

・Nginx の例

location /static/{
    root /home/testpy/apptest/todoapp;
 }


イメージは、以下となります。

では

いいなと思ったら応援しよう!