Djangoで作ったWebアプリをHerokuでデプロイするとmediaが使えなかった。
課題
Djangoで作ったWebアプリをHerokuで公開したら、DEBUG = True の時はmediaからファイルがダウンロードができたけど、本番環境のDEBUG = False にするとmediaからファイルがダウンロードができなくなった。
原因
PaaS(Herokuなど)ではDjangoのmediaは使えない(※使うためには工夫が必要)。
(参照サイト:Djangoで静的ファイルとうまくやる)
解決策
mediaを使う代わりにドロップボックスにファイルをアップロードして共有URLをHTMLにハイパーリンクとして埋め込む。ちなみに、ドロップボックスの共有URLの末尾をdl=0からdl=1に変更すると、強制ダウンロードにすることができる。
<a href="https://www.dropbox.com/<共有ファイル毎のURL>?dl=1">samplefile.pdf</a>
ポイント
対象のWebアプリでのmediaの用途が、adminが上げたファイルを利用者がダウンロードするためにmediaを使っていただけなので、上記の解決策が楽だった。