Python
Django
nginx

Djangoで本番環境にデプロイするときの、staticファイルの扱いについて

More than 1 year has passed since last update.


djangoでローカル環境で作業していたものを本番環境で実行するときに、staticファイルが表示されなくなった。

その対処法。


  • サーバー:nginx

  • django1.9.2

  • python3.5


ルーティング系


nginx.conf

#server{}の中に追記


location / {
root /home/hogehoge/hogehoge; #サーバー上でのアプリケーションディレクトリのパス
proxy_pass http://127.0.0.1:8000;
}

デプロイの時はこんな感じで設定した。


デバッグモードを切る

settings.pyで、下記の内容を書き直す。


settings.py

DEBUG = False

ALLOWED_HOSTS = ['127.0.0.1','任意のDNS']
STATIC_ROOT = "/home/hogehoge/hogehoge/static" #静的ファイルを置きたいパスを指定するみたい
# これに加えて、STATICFILES_DIRS = {…はコメントアウトするっぽい

このままだと、staticfileが非表示になってしまうので、

python manage.py collectstatic

を実行。

その後、nginxで設定を書き換える


nginx.conf

#server{}の中に


location /static/ {
alias /home/hogehoge/hogehoge/static/; #settings.pyで設定したのと同じ場所を記述
}

こんな感じで書いておく。以上。