Aws app running django static s3 url missing colon wrong url
Это мое первое сообщение, и я хотел осветить проблему, с которой я боролся целый день.
При настройке моего проекта django путем восстановления статических файлов из ведра s3 я столкнулся с проблемой, url префикс во фронте статических ресурсов генерировался без : после протокола, вот так:
<link rel="shortcut icon" type="image/png" href="https//django-examplebucketname.s3.amazonaws.com/static/images/favicon.png">
поэтому на css, js и все остальные статические ресурсы выдавали 404.
В тамблере у меня было: {% load static %} и
вместо этого файл настроек был настроен следующим образом:
WS_ACCESS_KEY_ID = "myid"
AWS_SECRET_ACCESS_KEY = "mykey"
AWS_STORAGE_BUCKET_NAME = "django-examplebucketname"
AWS_S3_REGION_NAME = "my-region"
AWS_S3_CUSTOM_DOMAIN = "django-examplebucketname.s3.amazonaws.com"
AWS_S3_URL_PROTOCOL = "https"
AWS_S3_USE_SSL = True
AWS_S3_VERIFY = True
AWS_LOCATION = "static/"
STATIC_URL = "https://django-examplebucketname.s3.amazonaws.com/static/"
STATICFILES_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
но статический url не был принят во внимание, и после освобождения над apprunning в url всегда не хватало : (двоеточие) после протокола
Никаких других конфигураций над проектом не применялось. С локальной настройкой и whitenoise все работало.
Я проверил:
- политика на bucket --> они были в порядке (попытка прямого подключения к ресурсу через url bucket была достижима)
- изменение static_url вручную
- переопределить статический метод
- используйте FORCE_SCRIPT_NAME и get_static_prefix .
- проверьте, что каждое поле было настроено правильно
Я смог самостоятельно устранить проблему
По какой-то причине свойство:
STATIC_URL = "https://django-examplebucketname.s3.amazonaws.com/static/"
вообще не рассматривался.
Я исправил на данный момент
комментируя:
- #AWS_S3_URL_PROTOCOL = "https"
- #AWS_S3_VERIFY = True
и держать включенным только:
- AWS_S3_USE_SSL = True
Надеюсь, это поможет.