「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Django の静的ファイル構成における STATICFILES_DIR、STATIC_ROOT、および MEDIA_ROOT はどのように異なりますか?

Django の静的ファイル構成における STATICFILES_DIR、STATIC_ROOT、および MEDIA_ROOT はどのように異なりますか?

2024 年 11 月 15 日に公開
ブラウズ:705

How do STATICFILES_DIR, STATIC_ROOT, and MEDIA_ROOT differ in Django\'s Static File Configuration?

Django での静的 URL 構成の定義

Web 開発では、静的ファイル (CSS、JavaScript、画像) の管理は、インタラクティブで視覚的に魅力的な Web アプリケーションをユーザーに提供するために重要です。 。人気の Python ベースの Web フレームワークである Django には、静的ファイル処理を構成するための 3 つの主要な設定 (STATICFILES_DIR、STATIC_ROOT、および MEDIA_ROOT) が用意されています。これらの設定の違いを理解することは、Django アプリケーションで静的ファイルを最適に管理するために不可欠です。

STATICFILES_DIR: 開発環境用

開発中、Django は組み込みファイルを使用します。サーバーは、STATIC_ROOT を定義する必要がなく、静的ファイルを自動的に提供します。 STATICFILES_DIR は、静的ファイルが見つかる追加のディレクトリを指定するために使用され、開発者がアプリ ディレクトリの外に静的アセットを保存できるようにします。

STATIC_ROOT: 運用環境用

運用中Django アプリケーションが Web サーバーにデプロイされている環境では、STATIC_ROOT が重要になります。この設定では、静的ファイルが収集され、Nginx や Apache などの Web サーバーによって提供される場所を指定します。 「collectstatic」コマンドを実行すると、STATIC_ROOT 内に静的ディレクトリが作成され、さまざまなアプリ ディレクトリからのすべての静的ファイルが含まれます。その後、Web サーバーは、この指定された場所から静的ファイルを提供するように設定されます。

MEDIA_ROOT: ユーザーがアップロードしたコンテンツの場合

静的ファイルとは別に、ユーザーがアップロードしたコンテンツ (次のようなコンテンツ)画像、オーディオ、ビデオは通常、別の場所に保存されます。 MEDIA_ROOT は、ユーザーがアップロードしたメディアを保存するパスを指定するために使用されます。 Django は、定義された MEDIA_ROOT に基づいて MEDIA_URL 設定を自動的に生成します。

使用例

次の Django 設定の例を考えてみましょう:

STATIC_URL = '/static/'

if not DEBUG:
    STATIC_ROOT = '/home/django/www-data/example.com/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static/'),
]

この例では、静的ファイルは「/static/」から提供され、MEDIA_URL は MEDIA_ROOT とパス「/home/user/project/django1/top/listing/static」に基づいて生成されます。は、開発中に静的ファイルを収集するための追加ディレクトリとして追加されます。

結論として、STATICFILES_DIR は主に開発中に使用され、追加のディレクトリを指定します。静的ファイルの場合。 STATIC_ROOT は、実稼働環境で静的ファイルの収集および提供場所を指定するために不可欠です。 MEDIA_ROOT は、ユーザーがアップロードしたコンテンツのストレージを処理します。これらの設定とその相互作用を理解することが、Django プロジェクトで静的ファイルを効率的に管理する鍵となります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3