LoginSignup
0
0

More than 3 years have passed since last update.

Django 静的ファイルの扱いについて

Last updated at Posted at 2020-02-29

Djangoの静的ファイルの扱いがいまいち理解出来てなっかたので
調べて自分なりにまとめました。
staticディレクトリの配置する場所が参考にするサイトによって
設計が違ったりするとわからなくなってしまう...
STATIC_ROOTSTATIC_URLSTATICFILES_DIRS
この3つの意味をちゃんと理解できればそんなに難しい話ではなかった...

STATIC_ROOTについて

settings.py
STATIC_ROOT = os.path.join(BASE_DIR,'static')

ローカルのサーバを動かしている段階では、Djangoが勝手に
各アプリディレクトリ直下のstaticディレクトリを自動で探してくれるため、
意識する必要はないみたいです。

しかし本番環境のWebサーバに静的ファイルを管理させる場合に設定が必要になります。
というのも本番環境のWebサーバにそれらの静的ファイルを管理させる場合、
それらのファイルを一箇所に集めることが必要になり、
どこに集めるのかを決めるのがこのSTATIC_ROOTの役割だそうです。

なので$ python manage.py collectstaticコマンドを打った際に、
各アプリの静的ファイルを集約する先を設定値として指定します。
こちらはデフォルトで記述がないため、自分で追記する必要があります。

STATIC_URLについて

settings.py
STATIC_URL = '/static/'

静的ファイルをどんなURLで公開するのかを決める設定値。
例:/static/とした場合、各静的ファイルはドメイン/static/????のような形で
アクセスできるようになります。

特にこだわりがなければ、デフォルトで記載されている/static/として問題ないみたいです。

STATICFILES_DIRSについて

settings.py
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)

ローカルのサーバを動かしている段階では、Djangoが勝手に
各アプリディレクトリ直下のstaticディレクトリを自動で探してくれますが、
もしそれ以外に静的ファイルディレクトリとして
認識してほしいディレクトリがあればSTATICFILES_DIRSで設定可能。
基本的には必要ないはず。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0