Зачем использовать Django collectstatic вместо того, чтобы просто обслуживать файлы непосредственно из вашего статического каталога?
В Django Docs:
Развертывание django.contrib.staticfiles обеспечивает удобство команда управления для сбора статических файлов в одном каталоге, поэтому вы можете легко их обслуживать.
Установите параметр STATIC_ROOT в каталог, из которого вы хотели бы обслуживать эти файлы, например:
STATIC_ROOT = "/var/www/example.com/static/"
Запустите команду управления коллекцией:
$ python manage.py collectstatic
Это скопирует все файлы из вашего статические папки в каталог STATIC_ROOT.
Используйте веб-сервер по вашему выбору для обслуживания файлов. Развертывание статических файлы покрывают некоторые общие стратегии развертывания для статических файлов.
Какова цель копирования файлов, почему бы просто не обслуживать их из каталога, в котором они живут в приложении?
Ответы
Ответ 1
Почему бы просто не обслуживать ваш каталог static
? Вы можете использовать несколько приложений, и некоторые из ваших приложений могут не находиться под вашим контролем. До того, как существовало приложение staticfiles
, вам пришлось либо вручную скопировать статические файлы для всех приложений в общий каталог, загрузить их в ваш CDN, либо связать их с корнем документа вашего веб-сервера.
Приложение staticfiles установило соглашение: поместите статические файлы для каждого приложения в каталог static
и дайте Django выполнить эту работу за вас.
Ответ 2
STATIC_ROOT
может находиться на другой машине, чем приложение, поэтому копирование ваших статических файлов в статический корень означает, что вы можете обслуживать ваши статические файлы с другого сервера (CDN FTW!), который вы не сможете использовать делать, если файлы, которые находятся только в соответствующих каталогах приложений.