ledo02
@ledo02

Почему не работает static после того, как выложил на хостинг?

Что здесь не так?

STATIC_URL = '/static/'
# STATIC_ROOT = 'static'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    os.path.join(BASE_DIR, "meccano_print/static"),
    os.path.join(BASE_DIR, "prints/static"),
    os.path.join(BASE_DIR, "zels/static"),
]
  • Вопрос задан
  • 1744 просмотра
Решения вопроса 1
@Realmixer
Full stack Python (Django) web-developer
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. Удачи!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы