Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Django AmazonS3 Heroku でデプロイした時の話 追記

mediaと、staticを分ける方法の1つが判明

概ね、後編でやった、custom_storages.pyを使う方向で間違っていなかった。 こちらの回答が参考になりました!

How to set-up a Django project with django-storages and Amazon S3, but with different folders for static files and media files? - Stack Overflow

suctom_storages.py

from storages.backends.s3boto import S3BotoStorage

StaticRootS3BotoStorage = lambda: S3BotoStorage(location='static')
MediaRootS3BotoStorage  = lambda: S3BotoStorage(location='media')

settings/production.py

    STATICFILES_STORAGE = 'ecommerce2.custom_storages.StaticRootS3BotoStorage'
    STATIC_URL = "https://%s/%s/" % ("*******.s3-website-ap-northeast-1.amazonaws.com", "static")

    MEDIAFILES_LOCATION = 'media'
    MEDIA_URL = "https://%s/%s/" % ("*******.s3-website-ap-northeast-1.amazonaws.com", "media")
    DEFAULT_FILE_STORAGE = 'ecommerce2.custom_storages.MediaRootS3BotoStorage'

課題

StaticFileはうまく表示されるようになった。ただ、background-image: url("{{ background_image.image.url }}");とかでは、うまくイメージが表示されないので、色々工夫が必要かも。とはいえ、コンテンツ配信まであと一歩!

ちなみに、media_root, static_rootは設定しなくても自動で処理してくれるぽい。