Если кто-то сталкивается с той же проблемой:
Это обеспечивает поддержку файлов, таких как CSS в Heroku
1.) В файле settings.py просто добавьте следующий код:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
Важные ссылки на данном этапе:
https://devcenter.heroku.com/articles/django-assets
Обеспечивает отображение мультимедиа
2.) В settings.py добавлю:
#<-------------Elements Amazon S3 Beginning --------->
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'reviews/static'),
] #ok
AWS_ACCESS_KEY_ID = 'YYY'
AWS_SECRET_ACCESS_KEY = 'XXX'
AWS_STORAGE_BUCKET_NAME = 'name'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
#AWS_LOCATION = 'static' #ok
#STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage' #OK
#STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION) # już wystęuje
DEFAULT_FILE_STORAGE = 'winerama.storage_backends.MediaStorage' # <-- here is where we reference it
#<-------------Elements Amazon S3 END -------------->
2.1) В этой же папке добавьте файл storage_backends.py
#FIle for amazon 3s
from storages.backends.s3boto3 import S3Boto3Storage
class MediaStorage(S3Boto3Storage):
location = 'media'
file_overwrite = False
* Конечно, мы также должны создать учетную запись amazon 3s.
Важные ссылки на данном этапе:
https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html (очень хороший урок, как использовать amazon 3s для медиафайлов и статических файлов)
2.2) Я также использую эти команды при добавлении приложения в Heroku:
heroku config:set AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY
heroku config:set S3_BUCKET_NAME=s'name'
Важные ссылки на данном этапе:
https://devcenter.heroku.com/articles/s3
3.) В развертывании это помогло мне
https://tutorial -extensions.djangogirls.org / о / Heroku /
(Я думаю, что ссылка полезна, но для развертывания всего приложения мне поможет следующий ответ на форуме)
отключить сбор данных при развертывании
heroku config:set DISABLE_COLLECTSTATIC=1
развернуть
git push heroku master
запустить миграцию (django 1.10 добавил хотя бы один)
heroku run python manage.py migrate
запустить коллектор, используя беседку
heroku run 'bower install --config.interactive=false;grunt prep;python manage.py collectstatic --noinput'
включить Collecstatic для будущих развертываний
heroku config:unset DISABLE_COLLECTSTATIC
попробуйте самостоятельно (необязательно)
heroku run python manage.py collectstatic
Автор высказывания tomcounsell
Ссылка: Коллектостатическая ошибка при развертывании приложения Django в Heroku
Пожалуйста, прости мой плохой английский.