Django файлы не обслуживаются c файлы ElasticBeanstalk - PullRequest
0 голосов
/ 31 марта 2020

У меня есть приложение Django, которое обслуживает stati c файлы из корзины s3, когда я запускаю его локально. но после развертывания на EB я получаю 404, так как браузер рендерит неожиданные ссылки для файлов stati c.

мои настройки выглядят так

STATIC_URL = '/static/'
AWS_STORAGE_BUCKET_NAME = 'bucket-name'  # or None if using service role
AWS_ACCESS_KEY_ID = os.environ.get('S3_ACCESS_KEY')
AWS_SECRET_ACCESS_KEY = os.environ.get('S3_SECRET_ACCESS_KEY')    
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME

STATICFILES_LOCATION = 'static'
STATICFILES_STORAGE = '<app_name>.custom_storages.StaticStorage'

MEDIAFILES_LOCATION = 'media'
DEFAULT_FILE_STORAGE = '<app_name>.custom_storages.MediaStorage'

Вот мой файл custom_storage.py.

from django.conf import settings
from storages.backends.s3boto3 import S3Boto3Storage


class StaticStorage(S3Boto3Storage):
    location = settings.STATICFILES_LOCATION


class MediaStorage(S3Boto3Storage):
    location = settings.MEDIAFILES_LOCATION

, когда я запускаю приложение локально, с этим параметром - браузер пытается извлечь из файла

https://bucket-name.s3.amazonaws.com/static/ {stati c -file-путь}

все хорошо, так что далеко.

Затем я развернул приложение на EB, и ад вырвался на свободу. Я полагаю, что где-то EB изменил STATIC_URL, а развернутое приложение пытается загрузить активы из

http: // {eb-app-endpoint} /static/main/css/font-awesome.css

Его игнорирование S3Boto3Storage все вместе. Есть ли какие-то настройки, которые мне не хватает? Кроме того, это первый раз, когда я внедряю приложение производственного уровня на EB, любые отзывы очень ценятся.

...