Django Backend Изображение не отображается

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

отображение браузера

Мой settings.py

INSTALLED_APPS = ['django.contrib.staticfiles',]

STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

Мой urls.py

from django.views.generic import TemplateView
from django.urls import path, include, re_path
from django.conf import settings
from django.conf.urls.static import static

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,
                          document_root=settings.MEDIA_ROOT)


if not settings.DEBUG:
    urlpatterns += [re_path(r'^.*',
                            TemplateView.as_view(template_name='index.html'))]

Моя модель выглядит следующим образом

class Product(models.Model):
  name = models.CharField(max_length=200)
  image = models.ImageField(blank=True)
  description = models.TextField()
  price = models.DecimalField(max_digits=9, decimal_places=2)
  createdAt = models.DateTimeField(auto_now_add=True)
  def __str__(self):
    return f" '{self.name}' "

вот моя конфигурация, в моем проекте React внутри Django, надеюсь, это может помочь

    STATIC_URL = '/static/'
    MEDIA_URL = '/media/'

    STATICFILES_DIRS = [
        BASE_DIR / 'static',
        BASE_DIR / 'frontend/build/static' //this is from react, frontend is the React project's name
    ]


    MEDIA_ROOT = BASE_DIR / 'static/media'
    STATIC_ROOT = BASE_DIR / 'staticfiles

не забудьте добавить/установить corsheader (также добавьте его в INSTALLED_APPS), и whitenoise

MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
...]


STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
CORS_ALLOW_ALL_ORIGINS = True

urls.py

urlpatterns = [
 path('', TemplateView.as_view(template_name='index.html')),
 .....
 ]

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Вернуться на верх