STATICFILES_DIR、STATIC_ROOT、および MEDIA_ROOT の違いを理解する
はじめに
静的およびメディアを扱う場合Django のコンテンツを理解するには、STATICFILES_DIR、STATIC_ROOT、MEDIA_ROOT という 3 つの主要な設定の違いを理解することが重要です。これらの設定は、開発環境およびデプロイメント環境で静的ファイルとメディア ファイルを管理する方法を定義する際に重要な役割を果たします。
STATICFILES_DIR
STATICFILES_DIR は、collectstatic コマンド中に静的ファイルを検索するための追加ディレクトリを指定します。これらのディレクトリは通常、個々の Django アプリ内に存在し、開発者が静的コンテンツを論理的に整理できるようにします。開発環境では、Django はアプリ固有の静的ディレクトリを自動的にスキャンし、STATIC_ROOT を必要とせずにファイルを提供します。
STATIC_ROOT
STATICFILES_DIR とは対照的に、STATIC_ROOT は、収集されたすべての静的ディレクトリが格納される絶対パスを定義します。ファイルを保存する必要があります。この設定は、静的ファイルが通常 Nginx などの別の Web サーバーによって提供される Django プロジェクトをデプロイする場合に不可欠です。 Django は、collectstatic コマンドを使用してすべての静的ファイルを STATIC_ROOT ディレクトリにコピーし、Web サーバーがそれらに効率的にアクセスできるようにします。
MEDIA_ROOT
MEDIA_ROOT は、次のようなユーザーがアップロードしたメディア ファイルを対象としています。画像、音声、またはビデオ。アプリケーション コードとともに配布される静的ファイルとは異なり、メディア ファイルはユーザーによって動的にアップロードされるため、展開全体で保持される必要があります。 MEDIA_ROOT は、これらのメディア ファイルを保存する絶対パスを指定します。
開発と展開
開発環境では、静的ファイルがアプリ ディレクトリから直接提供されるため、STATIC_ROOT は必要ありません。 。ただし、デプロイされた環境では、静的ファイルのキャッシュとパフォーマンスの最適化に STATIC_ROOT が重要になります。
追加ディレクトリ
STATICFILES_DIRS を使用して、デフォルト アプリ以外の静的ファイル用の追加ディレクトリを含めることができます。 - 固有のディレクトリ。これにより、開発者は、アプリ構造内の物理的な場所に関係なく、静的コンテンツを一元的な場所に保存できます。
構成例
これらの設定の構成例を次に示します。
# The URL to use when referring to static files (where they will be served from) STATIC_URL = '/static/' # The absolute path to the directory where static files will be collected and stored during deployment STATIC_ROOT = '/home/django/www-data/example.com/static/' # Additional static files directories to include in the collectstatic command STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static/'), ]
STATICFILES_DIR、STATIC_ROOT、MEDIA_ROOT の違いを理解することで、開発者は Django プロジェクトの静的コンテンツとメディア コンテンツを効果的に管理し、最適なパフォーマンスと外部 Web サーバーとのシームレスな統合を確保できます。
以上が提供された記事の内容に適合する質問ベースのタイトルをいくつか示します。 **相違点に焦点を当てる:** * **Django 静的ファイル: `STATICFILES_DIR` と `STATIC の違いを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。