AWS ElasticBeanstalk Django отображение изображений

Я загрузил свой каталог Media, который содержит мои изображения, но я не могу получить доступ к нему, чтобы отобразить мои изображения. мои изображения. Мои изображения правильно загружаются, когда я отправляю их, но я не могу просмотреть их на странице

Я использую ElasticBeanstalk и RDS - Mysql

Я настроил только мой RDS, все остальное, как EC2, S3, автоматически настроено ElasticBeanstalk

Команды, которые я использовал на eb:

eb init
eb create
eb deploy

static-files.config:

 option_settings:
     aws:elasticbeanstalk:environment:proxy:staticfiles:
         /static: static
         /media: media

django.config:

 option_settings:
     aws:elasticbeanstalk:container:python:
         WSGIPath: store.wsgi:application

01_packages.config:

 packages:
     yum:
         python3-devel: []
         mariadb-devel: []

models.py:

class Product(models.Model):
    image = models.ImageField(upload_to='product_images/%Y/%m/%d')

settings.py:

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

мой html:

                <a href="{{product.get_absolute_url}}">
                    <img class="default-img" src="{{product.image.url}}}" alt="550x750">

                </a>

Если я снова сделаю collectstatic, то изображения будут удалены, и мне придется загружать их снова по пунктам

Вы можете попробовать следующую конфигурацию, которая сработала у меня.

settings.py

DEBUG = False
MEDIA_URL = '/media/'
MEDIA_ROOT = 'media'
STATIC_URL = '/static/'
STATIC_ROOT = 'static'

Теперь запустите python manage.py collectstatic

В корневом файле urls.py сделайте следующую конфигурацию

from django.conf.urls import url
from django.conf import settings
from django.views.static import serve 

urlpatterns = [
    ...
    ...
    url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}), 
    url(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}), 
]

Вы можете обратиться к Github для лучшего представления. Спасибо

Вернуться на верх