ローカル環境でdjangoアプリをdebug=trueで開発していた。 debug=trueのままherokuでデプロイした。 「debug=trueのまま本番デプロイするな」と書いていることに気がついた。 debug=falseにした。 server error 500でなにも表示されなくなった。
なにが原因だったのか?
debug=trueの場合、djangoは[app/static/]に配置している静的ファイルを返してくれる。 ただしこれはセキュリティ観点や、パフォーマンス的によろしくなく、開発用に用意されている機能との事。 だからdebug=falseのときにはこの機能は無効化される。
dabug=falseの時にどこから静的ファイルを取得させるのかを設定する必要があったが、 それを行っていなかった。
対応
上記の設定をとりあえず簡単に行ってくれるものとしてwhiteNoiseを使う。
herokuに設定方法が記載されてた https://devcenter.heroku.com/articles/django-assets
(静的ファイルをS3などに置く場合には、これとは異なる設定を行うっぽい)