Подтвердить что ты не робот

Django - когда следует использовать media_root или static_root?

Я запутался в статических файлах и медиафайлах в django. Я видел в другом месте, что люди используют его взаимозаменяемо.

Когда следует использовать media_root и когда следует использовать static_root?

Если у меня есть изображения сайта, я должен положить его в статике? И если у меня есть изображения продуктов, я помещаю их в медиа?

4b9b3361

Ответ 1

MEDIA_ROOT - это каталог, в который помещаются загрузки файлов, а также где обычно хранятся сгенерированные файлы. Например, одно из моих приложений Django позволяет пользователям загружать изображения. В одном из классов модели я использую тип ImageField от sorl-thumbnail с помощью upload_to='%Y-%m'. Всякий раз, когда пользователь загружает изображение, файл сохраняется в MEDIA_ROOT/%Y-%m/ (с заменой %Y на текущий год и %m на номер текущего месяца). Кроме того, когда sorl-thumbnail генерирует миниатюру для загруженного изображения, он по умолчанию помещает уменьшенное изображение где-то в MEDIA_ROOT/cache/.

STATIC_ROOT используется для настройки каталога, в котором размещаются статические активы. Например, таблицы стилей сайтов, файлы JavaScript и изображения, используемые при создании веб-страниц, представляют собой типы файлов, которые входят в STATIC_ROOT. Если у вас несколько установленных приложений, каждое приложение, использующее статические файлы, может иметь свой собственный каталог статических файлов. Вы используете функцию управления collectstatic (вызывается через python manage.py collectstatic), чтобы скопировать все статические файлы приложений в STATIC_ROOT.