heroku에 django를 올린 후에 server error 500이 발생합니다.
조회수 1692회
현재 django를 갖고 간단한 블로그를 만든 후, heroku에 올렸습니다. 근데 몇몇 페이지에서 server error(500)오류가 발생합니다.
일단 server error(500) 오류가 발생하는 부분은 google login페이지, allauth로 만든 email로 로그인하는 페이지, 그리고 django admin페이지 입니다.
settings.py 파일입니다.
import os
import dj_database_url
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = '원래 존재함'
DEBUG = False
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'blog',
'basecamp',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
'django_extensions',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
'markdownx',
'crispy_forms',
'storages',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'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',
'whitenoise.middleware.WhiteNoiseMiddleware',
]
ROOT_URLCONF = 'my_site_prj.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 = 'my_site_prj.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
DATABASES['default'].update(dj_database_url.config(conn_max_age=500))
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 = 'en-us'
TIME_ZONE = 'Asia/Seoul'
USE_I18N = True
USE_L10N = True
USE_TZ = True
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
)
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = 'none'
# STATIC_URL = '/static/'
# STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_ROOT = os.path.join(BASE_DIR, '_media')
MEDIA_URL = '/media/'
from datetime import datetime
MARKDOWNX_MEDIA_PATH = datetime.now().strftime('markdownx/%Y/%m/%d')
CRISPY_TEMPLATE_PACK = 'bootstrap4'
LOGIN_REDIRECT_URL = '/blog/'
AWS_ACCESS_KEY_ID = ' ' # 원래 존재함
AWS_SECRET_ACCESS_KEY = ' ' #원래 존재함
AWS_REGION = 'ap-northeast-2'
AWS_STORAGE_BUCKET_NAME = 'inflearn-django'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.%s.amazonaws.com' % (AWS_STORAGE_BUCKET_NAME, AWS_REGION)
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
DEFAULT_FILE_STORAGE = 'my_site_prj.asset_storage.MediaStorage'
requirements.txt 파일입니다.
beautifulsoup4==4.8.1
boto3==1.10.45
botocore==1.13.45
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
cryptography==2.8
defusedxml==0.6.0
dj-database-url==0.5.0
Django==2.2
django-allauth==0.41.0
django-crispy-forms==1.8.1
django-extensions==2.2.5
django-markdownx==2.0.28
django-storages==1.8
docutils==0.15.2
gunicorn==20.0.4
idna==2.8
jmespath==0.9.4
Markdown==3.1.1
oauthlib==3.1.0
Pillow==6.2.1
psycopg2-binary==2.8.4
pycparser==2.19
python-dateutil==2.8.1
python3-openid==3.1.0
pytz==2019.3
requests==2.22.0
requests-oauthlib==1.3.0
s3transfer==0.2.1
six==1.13.0
soupsieve==1.9.5
sqlparse==0.3.0
urllib3==1.25.7
whitenoise==5.0.1
runtime.txt는 python-3.7.2
Procfile은 web: gunicorn my_site_prj.wsgi입니다.
페이지가 처음부터 오류가 나는 것도 아니고 몇몇 서비스만 오류가 발생해서 어떤 부분을 보여야 하는지 감이 잡히질 않습니다.. ㅜ 혹여나 현재 보여드린 부분이외에 다른부분이 필요하다 하시면 바로 업데이트 하겠습니다. 많은 도움 부탁드립니다. 감사합니다 ㅜㅜ
일단 debug를 켜놓고 heroku에 올려서 오류를 봤는데 분명히 localhost에선 잘들어 가지던 accounts/login/과 /accounts/google/login/, /admin/login/도 doesnotexist라고 url이 없다고 합니다. 왜 heroku에만 올라가면 url을 찾지 못하는 걸까요?
이건 config의 urls입니다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('blog/', include('blog.urls')),
path('admin/', admin.site.urls),
path('markdownx/', include('markdownx.urls')),
path('accounts/', include('allauth.urls')),
path('', include('basecamp.urls')),
]
댓글 입력