0

開発時には、django は を変更することで静的ファイルsettings.pyを処理できます。これらの静的ファイルを処理するためのリソースはそれほど消費されないと思います。

しかし、プロジェクトを を使用して本番環境に適用する場合mod_wsgi、推奨される静的ファイルの処理方法は、apache の構成ファイルで行うことであり、django 内で静的ファイルを処理することさえできません。

では、django が静的ファイルを処理しないのはなぜでしょうか。少なくともユーザーに簡単な方法を提供してください。

4

3 に答える 3

2

パフォーマンスの観点から、Django に静的ファイルを提供させたくない場合。Django インスタンスにリクエストを送信してから、Python にファイルを返させる理由はありません。Web サーバーが単独でこれを行う方がはるかに高速な場合です。

于 2012-11-19T15:52:32.150 に答える
1

Django は、本番環境で静的ファイルを提供するためのものではありません。

静的ファイルを提供する Django のコードは開発用であり、パフォーマンスや安全性を意図したものではありません。

HTTP サーバーの主な用途は、静的ファイルを提供することです。そのためのパフォーマンスと安全性が求められます。Django には、HTTP サーバーとファイル システムの間で干渉する正当な理由はありません。

システム管理者は、安全でパフォーマンスの高い HTTP サーバーを構成する必要があります。システム管理者がこれを行うことができなくても、それは Django のせいではありません。

これにより、Django はいくつかの Unix 原則に準拠します:

  • シンプルさのルール: シンプルさを重視した設計。必要なところだけ複雑にします。
  • 倹約のルール: 大きなプログラムは、他に何もできないことが実証によって明らかな場合にのみ作成してください。
  • モジュール化のルール: きれいなインターフェイスで接続された単純なパーツを記述します。
  • 分離の規則: ポリシーをメカニズムから分離します。エンジンからインターフェイスを分離します。
  • 明快さのルール: 明快さは賢さよりも優れています。

など...

Django の staticfiles システムは素晴らしく、実際、django に組み込まれる前から多くの人が使用していました (django-staticfiles アプリを参照)。私は、少しの努力をいとわない人なら誰でもそれを完全に理解し、素晴らしいと感じることができると確信しています. django-staticfiles を理解するのが少し難しかったことを覚えていますが、それはただのラブ ストーリーです。

アプリは、「静的」サブディレクトリを作成するだけで、URL、テンプレート、ビュー、およびモデルに加えて静的ファイルを埋め込むことができます。

django が静的ファイルの処理にどのように役立つかを理解していない場合は、この記事を生き残った django staticfilesを試すことができます。

于 2012-11-19T15:51:56.157 に答える
0

を使用して、本番環境で簡単に使用できます

python manage.py runserver 0.0.0.0:80

ウェブサイトは開発中と同じように機能します。繰り返しますが、お勧めしません..しかし、動作します

現実の状況では、多くの理由で静的ファイルを提供する他の Web サーバーを好みます (他の回答で言及されています)。

于 2012-11-19T16:00:44.250 に答える