У меня есть дроплет на digitalocean, который по большей части работает отлично, однако я включил опцию cdn в пространствах digitalocean (аналогично хранилищу aws s3) и при попытке загрузить файлы c stati с помощью cdn URL-адрес, я не могу заставить работать URL-адрес корректно, поэтому я подозреваю, что мне не хватает очевидного?
Например, когда я изменяю STATIC_URL в настройках на cdn, в источнике веб-страницы не видно никаких изменений? Если я изменю AWS_S3_ENDPOINT_URL и MEDIA_ENDPOINT_URL, то источник действительно изменится, но файлы не найдены, и, как можно догадаться, collectstati c больше не работает, поэтому я предполагаю, что AWS_S3_ENDPOINT_URL & MEDIA_ENDPOINT_URL нужно оставить как есть, и мне просто нужно убедиться, что используется static_url?
Я где-то читал, что не рекомендуется менять шаблоны с {% stati c .... на {% static_url, так что не сделали этого, это что-то я должен обновить или нет?
Настройки:
AWS_S3_ENDPOINT_URL = 'https://nyc3.digitaloceanspaces.com'
MEDIA_ENDPOINT_URL = 'https://nyc3.digitaloceanspaces.com/media/'
AWS_STORAGE_BUCKET_NAME = 'mysitestaging'
#STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
# if False it will create unique file names for every uploaded file
AWS_S3_FILE_OVERWRITE = False
STATICFILES_STORAGE = 'mysite.settings.storage_backends.StaticStorage'
DEFAULT_FILE_STORAGE = 'mysite.settings.storage_backends.MediaStorage'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
# the sub-directories of media and static files
STATIC_ROOT = 'static'
MEDIA_ROOT = 'media'
AWS_DEFAULT_ACL = 'public-read'
BUCKET_ROOT = '{}/{}/'.format(AWS_S3_ENDPOINT_URL, STATIC_ROOT)
# the regular Django file settings but with the custom S3 URLs
STATIC_URL = '{}/{}/'.format('https://cdn.mysite.com', STATIC_ROOT)
MEDIA_URL = '{}/{}/'.format('https://cdn.mysite.com', MEDIA_ROOT)
Исходное представление возвращает:
https://nyc3.digitaloceanspaces.com/mysitestaging/static/img/apple-touch-icon.png?AWSAccessKeyId=37FLLPUJLEUO5IG7R4GQ&Signature=eof5%2BZvHPo%2FRSzvKQsrobXkcOZ0%3D&Expires=1586789962
cdn.mysite.com
это псевдоним из
mysitestaging.nyc3.cdn.digitaloceanspaces.com.
My storage_backends.py:
import os
from storages.backends.s3boto3 import S3Boto3Storage
from my_site.settings import core_settings
class StaticStorage(S3Boto3Storage):
location = core_settings.STATIC_ROOT
class MediaStorage(S3Boto3Storage):
location = core_settings.MEDIA_ROOT