mathpython thesaurus

広告

DjangoのDEBUG=Falseでデプロイが失敗するときは、cssファイルにあるurl(../images/loading.gif)みたいなのにあった

cssファイルに画像を読み込むようなコードがある場合、それはDjangoのデプロイを阻止するリスクになる。私はこれだけで3時間を使ってしまった。

デプロイ自体はうまくいってプログラムも動くが、いざDEBUG=Falseに切り替えると500エラーになることがある。この問題はとても厄介で、海外のサイトを見ても膨大な数のQAがある。しかし半分以上はまったくあてにならない。

エラーの原因は主に

  • ALLOWED_HOSTSにドメインを設定していない
  • MIDDLEWAREにwhitenoiseを設定していない
  • STATIC_URLとSTATIC_ROOTをうまく設定していない
  • python manage.py collectstaticをやっていない

というもの。エラーが出たら、画像やcssファイルだけでも表示させよう。表示できたら、タイトルにあるような厄介な問題がある危険がある。表示できなかったら、STATIC_ROOTあたりの設定をミスっていると考えよう。whitenoiseを知らない人はdjango-assetsを読もう。

広告

広告