Django создал папку staticfiles вместо папки static

Я не знаю, почему Django создал папку с именем staticfiles, а не static, как ожидалось. Это может быть причиной того, что я получил ошибку после выполнения python manage.py collectstatic:

The system cannot find the path specified: 'D:...\\static'

Мой файл настроек включает:

from pathlib import Path
import os
import django_heroku

BASE_DIR = Path(__file__).resolve().parent.parent

STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

Я уже пытался изменить 'staticfiles' на 'static' в STATIC_ROOT, но безуспешно.

Кто-нибудь может объяснить, зачем и как создавать папку с именем "static"?

Заранее большое спасибо!

Я считал, что ваши статические файлы размещены внутри вашего приложения (приложений)

Попробуйте удалить STATICFILES_DIRS, чтобы установка была такой:

STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles'

... и попытайтесь повторно запустить python manage.py collectstatic

  • Вот как работает collectstatic:
    • Сначала он собирает статические файлы из STATICFILES_DIRS, если таковые имеются, если в настройках нет STATICFILES_DIRS, он собирает статические файлы из каждого приложения
    • .
    • Затем помещает их в STATIC_ROOT, поэтому если ваши статические файлы размещены внутри ваших приложений, лучше удалить STATICFILES_DIRS
    • .

Если все еще возникает ошибка, поделитесь структурой вашего проекта

Вернуться на верх