[Django] WhiteNoiseを使って静的ファイルを配信する

WhiteNoiseとは?

WhiteNoiseとはWSGIアプリケーションのための静的ファイルを配信するのを簡単にしてくれるライブラリです。
少しの設定をするだけでAmazon S3やNginxに頼ることなく静的ファイルを配信できます。
本番サーバーで画像やcss等を参照できるようにするには色々と手順を踏まないといけなかったのですが、WhiteNoiseを使うとそのような手間が省けて大変便利です。

Install

$pip install whitenoise

settings.py

BASE_DIR = os.path.dirname(os.path.abspath(__file__))

STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

wsgi.py

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise

application = get_wsgi_application()
application = DjangoWhiteNoise(application)

静的ファイルをSTATICFILES_STORAGEにコピーする

$python manage.py collectstatic

Done!

これで本番サーバーでも静的ファイルを参照できるようになります。

Related Contents

Pickup Contents