Django は、本番環境で静的ファイルを提供するためのものではありません。
静的ファイルを提供する Django のコードは開発用であり、パフォーマンスや安全性を意図したものではありません。
HTTP サーバーの主な用途は、静的ファイルを提供することです。そのためのパフォーマンスと安全性が求められます。Django には、HTTP サーバーとファイル システムの間で干渉する正当な理由はありません。
システム管理者は、安全でパフォーマンスの高い HTTP サーバーを構成する必要があります。システム管理者がこれを行うことができなくても、それは Django のせいではありません。
これにより、Django はいくつかの Unix 原則に準拠します:
- シンプルさのルール: シンプルさを重視した設計。必要なところだけ複雑にします。
- 倹約のルール: 大きなプログラムは、他に何もできないことが実証によって明らかな場合にのみ作成してください。
- モジュール化のルール: きれいなインターフェイスで接続された単純なパーツを記述します。
- 分離の規則: ポリシーをメカニズムから分離します。エンジンからインターフェイスを分離します。
- 明快さのルール: 明快さは賢さよりも優れています。
など...
Django の staticfiles システムは素晴らしく、実際、django に組み込まれる前から多くの人が使用していました (django-staticfiles アプリを参照)。私は、少しの努力をいとわない人なら誰でもそれを完全に理解し、素晴らしいと感じることができると確信しています. django-staticfiles を理解するのが少し難しかったことを覚えていますが、それはただのラブ ストーリーです。
アプリは、「静的」サブディレクトリを作成するだけで、URL、テンプレート、ビュー、およびモデルに加えて静的ファイルを埋め込むことができます。
django が静的ファイルの処理にどのように役立つかを理解していない場合は、この記事を生き残った django staticfilesを試すことができます。