I have my static files being stored in DigitalOcean CDN. I have multiple spaces 1 for clients and 1 for static assets and I use django-storages.
Here is my config:
AWS_S3_REGION_NAME = 'nyc3'
AWS_S3_ENDPOINT_URL = f'https://{AWS_S3_REGION_NAME}.digitaloceanspaces.com'
AWS_DEFAULT_ACL = 'private'
AWS_DEFAULT_BUCKET = 'exactestate-staging'
AWS_RESOURCE = session.resource('s3',
region_name=AWS_S3_REGION_NAME,
endpoint_url=AWS_S3_ENDPOINT_URL,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
AWS_CLIENT = boto3.client('s3',
region_name=AWS_S3_REGION_NAME,
endpoint_url=AWS_S3_ENDPOINT_URL,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
# Django’s STATIC_URL must end in a slash and the AWS_S3_CUSTOM_DOMAIN must not. It is best to set this variable independently of STATIC_URL.
AWS_S3_CUSTOM_DOMAIN = f'{AWS_DEFAULT_BUCKET}.{AWS_S3_REGION_NAME}.digitaloceanspaces.com'
STATIC_URL = f'https://{AWS_DEFAULT_BUCKET}.{AWS_S3_REGION_NAME}.digitaloceanspaces.com/static/'
STATICFILES_STORAGE = 'storage_backends.StaticStorage'
For some reason if I do not have: AWS_S3_CUSTOM_DOMAIN = f'{AWS_DEFAULT_BUCKET}.{AWS_S3_REGION_NAME}.digitaloceanspaces.com'
set, my {% static %}
tag uses the AWS_S3_ENDPOINT_URL
as the value...but I need it to use what I set for AWS_S3_CUSTOM_DOMAIN
.
Normally setting AWS_S3_CUSTOM_DOMAIN
would be fine but now all file.url
calls also go to static instead of my client space...how can I fix this?