Получение статических файлов 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)```
Вернуться на верх