Почему я не могу "git push heroku master"?
В настоящее время я пытаюсь развернуть свое приложение django на heroku и получаю ошибку. В моем приложении я обслуживаю статические и медиа файлы из AWS S3 bucket, и локально все работает нормально, но когда я пытаюсь развернуть его на heroku, я получаю эту ошибку:
Вот мои настройки.py:
PRODUCTION = True
if PRODUCTION:
# AWS S3 SETTINGS
AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME')
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_DEFAULT_ACL = 'public-read'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_HEADERS = {
'Access-Control-Allow-Origin': '*',
}
AWS_QUERYSTRING_AUTH = False
AWS_LOCATION = 'static'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
STATIC_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
DEFAULT_FILE_STORAGE = 'joaoLina.storage_backend.MediaStorage'
MEDIA_URL = 'https://%s/%s/' % (AWS_S3_CUSTOM_DOMAIN, 'media')
else:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
Я читал, что иногда эта проблема возникает из-за того, что STATIC_ROOT не установлен, но это не тот случай. И я знаю, что могу просто сделать:
$ heroku config:set DISABLE_COLLECTSTATIC=1
но таким образом проблема все равно будет существовать.
Я сделал локально:
python3 manage.py collectstatic
python3 manage.py test
и все прошло просто отлично с 0 проблемами.
Так что я действительно не знаю, где проблема, если кто-то может помочь, я буду благодарен.