1. Необходимо определить
STATIC_ROOT
— в неё Django копирует файлы из
STATICFILES_DIRS
.
2. Решить, в каком каталоге вы будете держать общую статику проекта, которая не относится к какому-то конкретному приложению. Прописать его в
STATICFILES_DIRS
.
3. Не нужно указывать в
STATICFILES_DIRS
каталоги конкретных приложений — Django по умолчанию и так собирает в
STATIC_ROOT
всё что найдёт в каталогах
static
внутри приложений.
Таким образом конфигурация может быть такой:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static") # Изначально пустой каталог, куда Django соберёт всё при выполнении manage.py collectstatic
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static_dev"), # Каталог, куда вам нужно складывать статику проекта, не относящуюся к конкретному приложению
]
Плюс, если вы запускаете сайт в через
runserver
, то нужно настроить
раздачу статики в режиме разработки. И не забывайте после любых изменений в файлах статики запускать
manage.py collectstatic
. Удачи!