Статические активы не найдены в веб-приложении Django
Я новичок в Django. Это моя первая попытка создать проект на Django. Я уже запускал это приложение, и все мои статические файлы отображались, как и ожидалось. Но после некоторого времени и перезагрузки машины статические файлы больше не отображаются.
Версия Django - 5.1.3
Вот структура проекта
И вот какие сообщения об ошибках я получаю
Мой файл 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
Спасибо всем, кто пытался помочь решить эту проблему. Надеюсь, это избавит кого-нибудь от проблем и времени, которые я потратил, чтобы обнаружить это