Как передать изображение из Django rest framework в react
Я делаю интернет-магазин используя drf + react. Как мне передать изображение из drf на react. Все сделал вроде как полагается. В settings media root и media url определены. Изображение храниться нормально. На клиент я передаю url изображения и когда ставлю его в src тега img изображение не появляется. Как это правильно реализовать. Помогите пожалуйста.
Ответы (1 шт):
Если мне не изменяет память, то настройка раздачи статики для теста и прода на 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',
},
},
},
})