Как передать изображение из Django rest framework в react

Я делаю интернет-магазин используя drf + react. Как мне передать изображение из drf на react. Все сделал вроде как полагается. В settings media root и media url определены. Изображение храниться нормально. На клиент я передаю url изображения и когда ставлю его в src тега img изображение не появляется. Как это правильно реализовать. Помогите пожалуйста.


Ответы (1 шт):

Автор решения: Iamnoob

Если мне не изменяет память, то настройка раздачи статики для теста и прода на Django отличается. Когда я использовал только темплейты Django, то я раздавал статику так, ничего не делая в urls.py:

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

if os.environ.get('DJANGO_TYPE_SYSTEM').lower() != 'test':
    STATIC_ROOT = Path.joinpath(BASE_DIR, STATIC_URL)
    MEDIA_ROOT = Path.joinpath(BASE_DIR, MEDIA_URL)
else:
    STATICFILES_DIRS = [BASE_DIR / 'static']
    MEDIAFILES_DIRS = [BASE_DIR / 'media']

Разумеется, нужно не забыть собрать статику с помощью команды collectstatic.

А в целом лучше настроить что-то вроде прокси. В nginx выглядит так:

location /static/ {
    root /home/django/www/websolvo;
}

В Vite примерно так:

export default defineConfig({
  server: {
    proxy: {
      '/static': {
        target: 'domain:port',
      },
    },
  },
})
→ Ссылка