Из-за чего не отображается изображение Django?
Ссылка скопирована
Сетинги
STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATIC_URL = 'static/' MEDIA_ROOT = os.path.join(BASE_DIR, 'madia/') MEDIA_URL = '/media/'
Юрл
if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Шаблон
<div class="container-fluid"> <div class="row"> <div class="col-4"> <img src="{{ user.user_info.photo.url }}"> <a>{{ user.username }} </a> </div> </div> </div> <div class="container">
Рендрится
Нужно понять: в модели стоит дефолт на стоковую аватарку пользователя, она туда сохраняется. Так что в данном случае я вообще не имею дела с отображениями статичсеких файлов в шаблон, верно?
Жду everything is bad
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
Figma
Баг с переносом слов в Figma?
1 ответ


Если в Django не отображается изображение, почти всегда проблема в настройке media/static, пути в шаблоне или в том, что файл физически не доступен веб-серверу. Сначала определите: это изображение из
staticили загруженный пользователем файл изmedia.Для загруженных файлов в
settings.pyдолжны быть настройки:MEDIA_URL = '/media/' MEDIA_ROOT = BASE_DIR / 'media'
В режиме разработки добавьте в
urls.py:from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # ... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
В шаблоне используйте URL поля, а не путь файла:
<img src="{{ object.image.url }}" alt=""><img src="{{ object.image.url }}" alt="">
Если это static-файл:
{% load static %} <img src="{% static 'images/logo.png' %}" alt="Logo">{% load static %} <img src="{% static 'images/logo.png' %}" alt="Logo">
Проверьте в браузере прямую ссылку на картинку. Если URL отдаёт 404 — проблема в маршруте или файле. Если 403 — права. Если URL правильный, но картинка не видна — смотрите CSS, размеры блока, lazy loading и mixed content.
На продакшене Django обычно не раздаёт media/static сам. Нужен Nginx/Apache location для
/media/и/static/.Итог: разделите media и static, проверьте URL картинки напрямую, настройки
MEDIA_URL/MEDIA_ROOT, шаблон и web-server. Без прямой доступности файла браузер изображение не покажет.