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 для лучшего представления. Спасибо