Статические активы не найдены в веб-приложении Django

Я новичок в Django. Это моя первая попытка создать проект на Django. Я уже запускал это приложение, и все мои статические файлы отображались, как и ожидалось. Но после некоторого времени и перезагрузки машины статические файлы больше не отображаются.

Версия Django - 5.1.3

Вот структура проекта

enter image description here

И вот какие сообщения об ошибках я получаю

enter image description here

Мой файл settings.py выглядит следующим образом:

Мне кажется, вы неправильно понимаете, как использовать static(…) обработчик [Django-doc]: это инструмент для определения URL путей, которые затем вызывают представление для обслуживания статического файла, поэтому он не принадлежит settings.py, а находится в root urls.py (или в другом, хотя это странно), поэтому DebbyrichCollections/urls.py выглядит так:

# DebbyrichCollections/urls.py

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # …
]


urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

В настройках, пожалуйста, не соединяйте STATIC_URL с BASE_DIR, это не имеет особого смысла, и если вы позже измените STATIC_URL, это может принести много проблем.

Работать с:

# settings.py

# …

STATICFILEDIRS = [os.path.join(BASE_DIR, 'static/')]

Примечание: Модули Python обычно пишутся в snake_case, а не PascalCase, так что это должно быть debbyrich_collections, а не DebbyrichCollections.


Примечание: Django не обслуживает статические и медиа файлы в production. В производстве, вам нужно будет настроить веб-сервер, например Apache или Nginx. Django документация содержит разделы по настройке веб-серверов.

После всех поисков и усилий я обнаружил, что проблема была связана с орфографией в файле settings.py.

STATICFILEDIRS = [os.path.join(BASE_DIR, 'static/')] //Wrong

что должно быть

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] //Right

Спасибо всем, кто пытался помочь решить эту проблему. Надеюсь, это избавит кого-нибудь от проблем и времени, которые я потратил, чтобы обнаружить это

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