ホームページ  >  記事  >  バックエンド開発  >  Django の STATICFILES_DIR、STATIC_ROOT、MEDIA_ROOT の違いは何ですか?

Django の STATICFILES_DIR、STATIC_ROOT、MEDIA_ROOT の違いは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 13:23:30240ブラウズ

What's the Difference Between STATICFILES_DIR, STATIC_ROOT, and MEDIA_ROOT in Django?

Django の STATICFILES_DIR、STATIC_ROOT、MEDIA_ROOT の違い

Django の静的ファイルは、画像などの変更されないファイルです。 CSSとJavaScript。 Django は、これらのファイルを目的と用途に応じて異なる方法で管理します。

STATICFILES_DIRSTATIC_ROOT はどちらも静的ファイルに使用されますが、目的は異なります。 STATICFILES_DIR は、collectstatic コマンドの実行時に Django が静的ファイルを検索する追加のディレクトリを指定するために使用されます。これは、専用の静的ファイル サーバーなど、プロジェクトのメイン ディレクトリとは別の場所に静的ファイルを保存したい場合に便利です。

STATIC_ROOT は、Django が保存する場所を指定するために使用されます。すべての静的ファイルを収集し、プロジェクトのデプロイ時にそれらを使用できるようにします。これは通常、プロジェクトのディレクトリの外の場所 (例では /home/user/project/django1/top/listing/static など) に設定されます。

MEDIA_ROOT はユーザーのために使用されます。画像やビデオなどのアップロードされたファイル。静的ファイルとは異なり、アップロードされたファイルは変更される可能性があり、通常はバージョン管理されません。 MEDIA_ROOT は、これらのファイルがサーバー上で保存される場所を指定します。

あなたの場合、アップロードされた写真の保存に MEDIA_ROOT を使用していますが、これは正しいことです。ただし、管理者にカスタム JS スクリプトを含めようとしたときに、STATIC_ROOT ではなく STATICFILES_DIRS を使用しました。これが、JS スクリプトのロード時に 404 エラーが発生した理由です。

この問題を解決するには、次のいずれかを行うことができます:

  • STATIC_ROOT を使用して場所を指定します
  • STATICFILES_DIRS を使用して、Django が静的ファイルを検索してそのディレクトリに JS スクリプトを追加する追加のディレクトリを追加します。

STATIC_ROOT はプロジェクトのデプロイ時にのみ使用されることに注意してください。そのため、開発中は STATICFILES_DIRS を使用し、デプロイには STATIC_ROOT を使用することをお勧めします。 .

以上がDjango の STATICFILES_DIR、STATIC_ROOT、MEDIA_ROOT の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。