HerokuでDjango3.2をデプロイした時にDebug=Falseの500がなかなか解決できなかったときの対処についてのメモ
HerokuでDjangoアプリケーションを作った時にDebug=Trueだと動くのにDebug=Falseにしたとたん500で動かなく時にやったことについて書きます。
ただ、この内容はwhitenoise Static File関係で起きてる現象の解決方法です。他のエラーで変になっている場合は解決できないと思います。
Django==3.2.5
whitenoise==5.3.0
解決した方法
一番最後につけたdjango_heroku.settings(locals())の後に1行付けるだけです。
django_heroku.settings(locals())
# STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' # heroku ドキュメントの設定
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATICFILES_STORAGEをWhitenoiseの設定ではなくDjangoデフォルトのやつに書き直すと動きました。
GitHubのWhiteNoiseのIssueみると書いてました。
WhiteNoiseと参照するファイルの相性か何かが問題になっているのだと思いますが詳細は分かりません。
WhiteNoiseのマニュアルにもトラブルシューティングの項目でも簡単に書かれていたので既知の問題なのかもしれません。
"heroku django debug false 500"で調べると大量に記事があって、なにがなにやら情報が錯綜しているようですがDjangoのバージョンとか静的ファイルの場所とか設定で変わるのかなぁと思いました。なんとも厄介なエラーですね。
まぁ参考になれば何よりです。
最近、色々な人のDjangoアプリを見ながら勉強している。この本とか色々例題あっていいかも。ちょっとお高いけど。
やっぱり勉強しないと問題が出た時に対応できないですよね。そんなことを色々と調べてみて思いました。
良ければサポートお願いします。サポート費用はサーバー維持などの開発費に使わせていただきます。