Я использую Django Material Admin , который работал нормально, когда мое приложение было развернуто на Elasti c Beanstalk или запущено локально. Тогда я решил переместить его без сервера с Zappa
Я следовал документации для доставки статического / медиа контента через S3
Итак, мои настройки стало:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
INSTALLED_APPS = [
'material.admin',
'material.admin.default',
...
'django_s3_storage',
]
...
# The AWS region to connect to.
AWS_REGION = "us-east-2"
# The AWS access key to use.
AWS_ACCESS_KEY_ID = os.environ['S3_MEDIA_AWS_ACCESS_KEY_ID']
# The AWS secret access key to use.
AWS_SECRET_ACCESS_KEY = os.environ['S3_MEDIA_AWS_SECRET_ACCESS_KEY']
DEFAULT_FILE_STORAGE = 'django_s3_storage.storage.S3Storage'
YOUR_S3_BUCKET = "my-bucket-name
STATICFILES_STORAGE = "django_s3_storage.storage.StaticS3Storage"
AWS_S3_BUCKET_NAME_STATIC = YOUR_S3_BUCKET
AWS_S3_BUCKET_NAME = YOUR_S3_BUCKET
# These next two lines will serve the static files directly
# from the s3 bucket
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % YOUR_S3_BUCKET
STATIC_URL = "https://%s/" % AWS_S3_CUSTOM_DOMAIN
AWS_S3_FILE_OVERWRITE = True
AWS_S3_BUCKET_AUTH = False
AWS_S3_MAX_AGE_SECONDS = 60 * 60 * 24 * 365 # 1 year.
Затем я запускаю collectstati c, и все, кажется, работает нормально
Однако значки материалов не отображаются, вместо этого я вижу текст, все остальные of stati c файлы отображаются правильно.
Если я проверяю веб-сайт, я вижу, что шрифт загружается встроенным в заголовок:
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url('https://my-bucket-name.s3.amazonaws.com/material/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2') format('woff2');
}
Если я проверяю URL выше Я могу скачать шрифт оттуда, никаких проблем с этим, шрифт, кажется, там. Если я go на вкладке Network
на Firefox, я вижу, что загрузка шрифта есть, но я вижу только запросы с 307 ответом. Тем не менее, на Chrome я вижу тот же запрос, но он помечен как красный
General:
Request URL: https://my-bucket-name.s3.amazonaws.com/material/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2
Referrer Policy: no-referrer-when-downgrade
Response Headers:
Location: https://my-bucket-name.s3.us-east-2.amazonaws.com/material/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2
Content-Type: application/xml
Date: Tue, 25 Feb 2020 16:51:27 GMT
Server: AmazonS3
И, как вы можете видеть, тип контента установлен на application / xml, не уверен, что эти может быть проблема, но как я могу это исправить?
Я пошел, хотя документация django -s3-storage , но не вижу, что может быть не так или это может привести к этому
Есть идеи?