Не работает команда collectstatic в проекте Django
При вводе команды 'python manage.py collectstatic' в командную строку в Visual Studio 2022 выводится ошибка: 'You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.' Вроде как путь указан криво. А он указан вроде нормально, и работает само приложение с имеющимися статиками корректно. Расскажите в чем тут дело? Что вообще делает эта команда (потому что имеющиеся объяснения я так и не понял). setings.py:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
Сам путь тоже командой print выводил, за исключением "\" там всё правильно
Команда collectstatic
в django собирает все статические файлы в папку, которая указана в настройках (settings.py
) и имеет имя STATIC_ROOT
.
По умолчанию поиск статических файлов осуществляется в местах указанных в STATICFILES_DIRS
. То есть - откуда собирать. Так же в поиск включены все директирии приложений с именем static
.
Документация здесь
Зачем собирать?
Коротко, удобный менеджмент статических файлов через интерфейсы django.
При деплое проекта и использовании например nginx
, необходимо прописывать полный путь к статическим файлам. Если проект разветвленный, если несколько приложений, админка и прочее, есть смысл держать всю статику в одном месте и прописывать в nginx
одной строкой, вместо того, чтобы собирать из каждого приложения по отдельности.
Так же при удалении какого-то приложения, вам необходимо удалить и его статические файлы, то сможете легко это провернуть с помощью этой команды с флагом --clear