Django статические и медиа файлы + DigitalOcean Spaces
Привет всем!
Я впервые пытаюсь связать проект Django (который находится в DigitalOcean App Platform) с DigitalOcean Spaces. Я создал 3 папки внутри Spaces: static, media и staticfiles. Однако я заметил, что когда я запускаю 'collectstatic', все статические файлы копируются не в папку 'staticfiles', а на корневой уровень.
Если я посещаю доменное имя, статические файлы видны: как изображения, так и файлы css и javascript. И наоборот, медиафайлы не отображаются.
Просматривая код через google developer tools, я заметил, что атрибуты src тегов img пытаются найти как статические, так и медиа файлы на корневом уровне.
Вот что я пытался сделать.
Я установил 'django-storages', включил его в 'INSTALLED_APPS' и затем поместил этот код в settings.py:
AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.getenv('AWS_STORAGE_BUCKET_NAME')
# AWS_S3_CUSTOM_DOMAIN = os.getenv('AWS_S3_CUSTOM_DOMAIN')
AWS_S3_REGION_NAME = '<REGION_NAME>'
AWS_S3_ENDPOINT_URL = os.getenv('AWS_S3_ENDPOINT_URL')
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATICFILES_DIRS = [BASE_DIR / "static"]
MEDIA_URL = 'https://<REGION_NAME>.digitaloceanspaces.com/<BUCKET_NAME>/media/'
STATIC_URL = 'https://<REGION_NAME>.digitaloceanspaces.com/<BUCKET_NAME>/static/'
MEDIA_ROOT = 's3://<REGION_NAME>.digitaloceanspaces.com/<BUCKET_NAME>/media'
STATIC_ROOT = 's3://<REGION_NAME>.digitaloceanspaces.com/<BUCKET_NAME>/staticfiles'
В документации 'django-storages' я увидел, что STATICFILES_STORAGE должен быть таким:
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3StaticStorage'
но при этом не загружались статические файлы (css, изображения, js ecc.)