前提・実現したいこと
django+heroku+awsでECサイトを製作しています。herokuへのデプロイ完了後、画像が表示されないのでaws設定をここのサイトを見て追記しました。しかし、Server Error (500)となりなにも表示されません。
awsの設定記述前は画像以外は表示されていたため、そこに問題があると思い調べたのですが分かりませんでした。どなたかどこが間違っているか教えてください。
ローカル環境では画像含めすべて表示されます。また、https://私のサイト.herokuapp.com/admin/には入り、編集することができます。
発生している問題・エラーメッセージ
heroku logsを見る限り、これ以外のエラーメッセージはありませんでした。
2020-03-14T15:53:02.831680+00:00 heroku[router]: at=info method=GET path="/" host=aiecsite.herokuapp.com request_id=8bb35d57-85aa-41a8-a949-4739ba93053b fwd="123.227.40.180" dyno=web.1 connect=0ms service=913ms status=500 bytes=234 protocol=https 2020-03-14T15:53:02.829594+00:00 app[web.1]: 10.41.198.134 - - [15/Mar/2020:00:53:02 +0900] "GET / HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" 2020-03-14T15:56:20.111383+00:00 heroku[router]: at=info method=GET path="/" host=aiecsite.herokuapp.com request_id=9c88be55-4b5c-4c6d-a193-ef0ac5498e9c fwd="123.227.40.180" dyno=web.1 connect=0ms service=35ms status=500 bytes=234 protocol=https 2020-03-14T15:56:20.110689+00:00 app[web.1]: 10.16.250.243 - - [15/Mar/2020:00:56:20 +0900] "GET / HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" 2020-03-14T16:02:34.009582+00:00 app[web.1]: 10.156.16.229 - - [15/Mar/2020:01:02:34 +0900] "GET /admin/ HTTP/1.1" 200 5981 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36" 2020-03-14T16:02:34.011347+00:00 heroku[router]: at=info method=GET path="/admin/" host=aiecsite.herokuapp.com request_id=569721dd-4b8c-4f3e-bd58-df28132a9e36 fwd="123.227.40.180" dyno=web.1 connect=1ms service=387ms status=200 bytes=6433 protocol=https 2020-03-14T16:02:39.089861+00:00 app[web.1]: 10.156.16.229 - - [15/Mar/2020:01:02:39 +0900] "GET /admin/app/sale/ HTTP/1.1" 200 3377 "https://aiecsite.herokuapp.com/admin/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3 987.132 Safari/537.36"
settings.py
import os import dj_database_url BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) DEBUG = False ALLOWED_HOSTS = ['*'] INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users', 'django.contrib.humanize', 'app', 'storages', ####追記 ] AUTH_USER_MODEL = 'users.User' NUMBER_GROUPING = 3 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'ecsite.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'ecsite.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'name', 'USER': 'user', 'PASSWORD': '', 'HOST': 'host', 'PORT': '', } } AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] LANGUAGE_CODE = 'ja' TIME_ZONE = 'Asia/Tokyo' USE_I18N = True USE_L10N = True USE_TZ = True PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) LOGIN_URL = 'app:login' LOGIN_REDIRECT_URL = 'app:index' LOGOUT_REDIRECT_URL = 'app:index' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/' STATIC_URL = '/static/' STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),) STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') SESSION_SAVE_EVERY_REQUEST = True try: from .local_settings import * except ImportError: pass if not DEBUG: ##################################追記した部分################################################ SECRET_KEY = os.environ['SECRET_KEY'] AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID'] AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY'] AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME'] DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' S3_URL = 'http://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME MEDIA_URL = S3_URL AWS_S3_FILE_OVERWRITE = False AWS_DEFAULT_ACL = None ##################################ここまで################################################ import django_heroku django_heroku.settings(locals()) db_from_env = dj_database_url.config(conn_max_age=600, ssl_require=True) DATABASES['default'].update(db_from_env)
backends.py(2020/03/15追記)
from storages.backends.s3boto3 import S3Boto3Storage class MediaStorage(S3Boto3Storage): location = 'media' file_overwrite = False
補足情報(FW/ツールのバージョンなど)
python 3.8.0
appdirs==1.4.3
boto3==1.12.21
botocore==1.15.21
certifi==2019.11.28
chardet==3.0.4
distlib==0.3.0
dj-database-url==0.5.0
Django==2.2
django-heroku==0.3.1
django-storages==1.9.1
docutils==0.15.2
filelock==3.0.12
gunicorn==20.0.4
idna==2.9
jmespath==0.9.5
Pillow==7.0.0
psycopg2==2.8.4
python-dateutil==2.8.1
pytz==2019.3
requests==2.23.0
s3transfer==0.3.3
six==1.14.0
sqlparse==0.3.1
urllib3==1.25.8
virtualenv==20.0.10
whitenoise==4.1.3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/15 11:02
2020/03/15 11:32