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

Надеюсь, это поможет.

Вернуться на верх