LoginSignup
0
0

More than 3 years have passed since last update.

HerokuにDjangoアプリをデプロイする時にCSS反映されない問題

Posted at

概要

Django で簡単なWebアプリケーションを作ったので heroku にデプロイしたところ、cssファイルが反映されなかった。
備忘記事。

対処法

ローカル環境で python manage.py collectstatic を実行して、静的ファイルを集めるディレクトリを作成したまでは良いものの、それを .gitignore に追加してしまっていたのが原因だったので、それを ignore せずにgit add .してあげた後にデプロイしたらいけた。

そもそも

Django プロジェクトにおいて、ローカル環境と本番環境で静的ファイルを参照するディレクトリは違うらしい。

Django のチュートリアルとかでは大体以下のようなセッティングになっていると思う。

settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') # -> 本番環境で参照されるディレクトリ
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")] # -> ローカル環境で参照されるディレクトリ

まず、STATIC_ROOTは本番環境で静的ファイルを使う際に参照されるディレクトリ。
つまり、heroku run python manage.py collectstaticstaticfilesに静的ファイルが集められて、集められた静的ファイル達が参照されることになる。

また、STATICFILES_DIRSはローカル環境で参照されるディレクトリで、DEBUG=Trueになっている時に機能する。

herokuにデプロイされた後、heroku run bashでアップロードされたファイル群?を見れるが、その時に参照するべきstaticfilesがなかったことで今回は気づいた。

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