У меня есть приложение 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, любые отзывы очень ценятся.