私はdjangoの静的ファイルとメディアファイルについて混乱しています。私は他の人がそれを交換可能に使用するのを見てきました。django - media_rootまたはstatic_rootをいつ使うべきですか?
いつmedia_root
を使用し、static_root
を使用する必要がありますか?
私はサイトイメージを持っていればいいですか?そして私が製品イメージを持っていればメディアに入れますか?
私はdjangoの静的ファイルとメディアファイルについて混乱しています。私は他の人がそれを交換可能に使用するのを見てきました。django - media_rootまたはstatic_rootをいつ使うべきですか?
いつmedia_root
を使用し、static_root
を使用する必要がありますか?
私はサイトイメージを持っていればいいですか?そして私が製品イメージを持っていればメディアに入れますか?
MEDIA_ROOT
は、ファイルのアップロードが配置されるディレクトリであり、通常は生成されるファイルが格納される場所です。たとえば、私のDjangoアプリケーションの1つで、ユーザーは画像をアップロードできます。モデルクラスの1つでは、sorl-thumbnailのImageField
タイプをupload_to='%Y-%m'
としています。ユーザーが画像をアップロードするたびに、ファイルはMEDIA_ROOT/%Y-%m/
に保存されます(%Y
は現在の年に置き換えられ、%m
は現在の月の数字に置き換えられます)。また、sorl-thumbnailがアップロードされた画像のサムネイルを生成すると、サムネイルby defaultはMEDIA_ROOT/cache/
のどこかに配置されます。
STATIC_ROOT
は、静的資産が配置されるディレクトリを構成するために使用されます。たとえば、サイトスタイルシート、JavaScriptファイル、およびWebページのデザインで使用される画像は、STATIC_ROOT
に入るファイルの種類です。複数のアプリケーションがインストールされている場合、静的ファイルを使用する各アプリケーションは独自の静的ファイルディレクトリを持つことができます。 collectstatic
管理機能(python manage.py collectstatic
から呼び出されます)を使用して、すべてのアプリの静的ファイルをSTATIC_ROOT
にコピーします。
返信いただきありがとうございます。もう1つのフォローアップの質問。製品イメージがあればどうなりますか?どこに行かなければならないのですか?管理者はアップロードすることができ、サイトに表示する必要があります。 –
@ bash-:製品イメージのパスをデータベースに保存していますか? ['ImageField'](https://docs.djangoproject.com/ja/dev/ref/models/fields/#imagefield)と[' FileField'](https://docs.djangoproject.com/ja)のファイル/ dev/ref/models/fields /#filefield)は 'MEDIA_ROOT'に入っています。この場合yes、製品イメージは' MEDIA_ROOT'に入っています(ただし、 'MEDIA_ROOT'に手作業でアップロードする必要はありません。アプリはそれを行う必要があります)。手動で製品イメージを管理し、テンプレートの ''タグで参照する場合、製品イメージは 'STATIC_ROOT'に移動する必要があります。 –