Установка статических url в Django не работает в продакшене
Я загрузил stsatic файлы на Cloudflare R2 с помощью команды python manage.py collectstatic
, и проверенные файлы находятся там.
Также разрешен публичный доступ для ведра R2.
У меня в моем settings.py
файле есть вот это, связанное со статикой:
STATIC_HOST = env("STATIC_HOST")
STATIC_URL = STATIC_HOST + "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
STATICFILES_STORAGE = (
"django.contrib.staticfiles.storage.StaticFilesStorage"
if DEBUG
else "myproject.backends.storages.StaticStorage"
)
...и это мой .env
файл:
DEBUG=True
AWS_ACCESS_KEY_ID=my_r2_access_key_id
AWS_SECRET_ACCESS_KEY=my_r2_secret_access_key
AWS_STORAGE_BUCKET_NAME=my_r2_bucket_name
# Endpoint for uploads
AWS_S3_ENDPOINT_URL=https://my_account_id.r2.cloudflarestorage.com
# Public access url
STATIC_HOST=https://pub-a1b2c3d4e5f6.r2.dev
Когда я runserver
с DEBUG=False
и перехожу к localhost:8000/admin
он не загружает CSS должным образом, и статические запросы файлов все 4xx
и не используют предоставленные STATIC_URL
но AWS_S3_ENDPOINT_URL
.
Когда я runserver
использую DEBUG=True
, он правильно загружает статические файлы из предоставленных STATIC_URL
настроек.
Я хочу загружать статические файлы из R2 bucket в production / DEBUG=False
и использовать локальные статические файлы с DEBUG=True
.
Пожалуйста, помогите мне, что я делаю не так?