Получение статических файлов Django из неправильного url
Я переношу старый проект Django 2.2 на Django 3.2. Я использую AWS Cloudfront и S3.
Я выполнил большинство задач. Но у меня что-то странное в обслуживании статических файлов. Когда вызывается тег шаблона 'static', рендерится url "https//<cloudfront_url>/static..." вместо "https://<cloudfront_url>/static...". Запятая исчезает! Это, очевидно, приводит к 404 not found. Это работало без проблем на Django2.2. Поэтому на данный момент я исправил это, сделав '.replace("https//", "https://")' в теге статического шаблона django.
Мои настройки, относящиеся к статическим файлам, следующие :
# settings.py
STATICFILES_LOCATION = 'static'
AWS_CLOUDFRONT_DOMAIN = <idcloudfront>.cloudfront.net
STATICFILES_STORAGE = 'app.custom_storages.StaticStorage'
STATIC_URL = "https://%s/%s/" % (AWS_CLOUDFRONT_DOMAIN, STATICFILES_LOCATION)
AWS_STORAGE_STATIC_BUCKET_NAME = 'assets'
# app.custom_storages.py
class StaticStorage(S3Boto3Storage):
location = settings.STATICFILES_LOCATION
bucket_name = settings.AWS_STORAGE_STATIC_BUCKET_NAME
def __init__(self, *args, **kwargs):
kwargs['custom_domain'] = settings.AWS_CLOUDFRONT_DOMAIN
super(StaticStorage, self).__init__(*args, **kwargs)```