質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

解決済

1回答

6467閲覧

dajngo herokuのserver error(500)が解消できない

yamatar

総合スコア4

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

0グッド

0クリップ

投稿2020/11/18 03:00

編集2020/11/24 01:40

前提・実現したいこと

git push heroku mainしてheroku openするとserver error(500)となってしまします。heroku logsでログを確認すると、djangoのログイン画面でエラーが起きているように思えるのですが、〇〇ERRORのようなメッセージも無く、どのように対処すればよいかが分かりません。
ご教示よろしくお願い致します。

ローカルではエラー無く稼働します。
migrate,createsupruserは実施済みです。

発生している問題・エラーメッセージ

log

12020-11-18T02:38:47.305407+00:00 app[web.1]: 10.69.229.158 - - 18/Nov/2020:11:38:47 +0900] 2"GET / HTTP/1.1" 302 0 "-" 3"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69" 4 52020-11-18T02:38:47.306543+00:00 heroku[router]: 6at=info method=GET path="/" 7host=アプリ名.herokuapp.com request_id=0aafd9dd-6185-47a5-93da-2e0a570662c4 fwd="111.239.167.18" 8dyno=web.1 connect=1ms service=4ms status=302 bytes=266 protocol=https 9 102020-11-18T02:38:47.578580+00:00 app[web.1]: 10.69.229.158 - -[18/Nov/2020:11:38:47 +0900] 11"GET /accounts/login/?next=/ HTTP/1.1" 500 145 "-" 12"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Edg/86.0.622.69" 13 142020-11-18T02:38:47.579524+00:00 heroku[router]: 15at=info method=GET path="/accounts/login/?next=/" 16host=アプリ名.herokuapp.com request_id=b8947b9b-962f-4503-a833-18bac7c66ea2 fwd="111.239.167.18" dyno=web.1 connect=1ms service=27ms status=500 bytes=380 protocol=https

該当のソースコード

settings

1""" 2Django settings for deploy project. 3 4Generated by 'django-admin startproject' using Django 3.0.7. 5 6For more information on this file, see 7https://docs.djangoproject.com/en/3.0/topics/settings/ 8 9For the full list of settings and their values, see 10https://docs.djangoproject.com/en/3.0/ref/settings/ 11""" 12 13import os 14from django.contrib import admin 15 16###admin画面の表示設定 17admin.AdminSite.site_title = 'ログインページ' 18admin.AdminSite.site_header = '管 理 画 面' 19admin.AdminSite.index_title = 'メニュー' 20###ログイン関連 21LOGIN_URL='/accounts/login'#<-- ログインURL 22LOGIN_REDIRECT_URL='/'#<-- ログイン後トップページにリダイレクト 23LOGOUT_REDIRECT_URL='/'#<-- ログアウト後トップページにリダイレクト 24 25## osgeo4wはlocal_settings.pyに移動 ## 26 27# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 28BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 29 30 31# Quick-start development settings - unsuitable for production 32# See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ 33 34# SECURITY WARNING: keep the secret key used in production secret! 35SECRET_KEY = '8@x_612*9gnu=f)es2)_y8%h(h_=fjgajn1t644dj#v*oh8hd2' 36 37# SECURITY WARNING: don't run with debug turned on in production! 38DEBUG = False 39 40ALLOWED_HOSTS = [ 41 "アプリ名" 42] 43 44 45# Application definition 46 47INSTALLED_APPS = [ 48 'django.contrib.admin', 49 'django.contrib.auth', 50 'django.contrib.contenttypes', 51 'django.contrib.sessions', 52 'django.contrib.messages', 53 'django.contrib.staticfiles', 54 'django.templatetags.static', 55 'django.contrib.gis', 56 'django_cleanup.apps.CleanupConfig', # django-cleanup 57 'map.apps.MapConfig', 58 'deploy', 59 'leaflet', 60 'six', 61 'django_filters', 62 'rest_framework', 63 'rest_framework_gis', 64 'markdown', 65 'PIL', 66 'PIL.ExifTags', 67] 68 69MIDDLEWARE = [ 70 'django.middleware.security.SecurityMiddleware', 71 'whitenoise.middleware.WhiteNoiseMiddleware', # heroku追加 72 'django.contrib.sessions.middleware.SessionMiddleware', 73 'django.middleware.common.CommonMiddleware', 74 'django.middleware.csrf.CsrfViewMiddleware', 75 'django.contrib.auth.middleware.AuthenticationMiddleware', 76 'django.contrib.messages.middleware.MessageMiddleware', 77 'django.middleware.clickjacking.XFrameOptionsMiddleware', 78] 79 80ROOT_URLCONF = 'deploy.urls' 81 82TEMPLATES = [ 83 { 84 'BACKEND': 'django.template.backends.django.DjangoTemplates', 85 'DIRS': [os.path.join(BASE_DIR, 'templates')], 86 'APP_DIRS': True, 87 'OPTIONS': { 88 'context_processors': [ 89 'django.template.context_processors.debug', 90 'django.template.context_processors.request', 91 'django.contrib.auth.context_processors.auth', 92 'django.contrib.messages.context_processors.messages', 93 ], 94 }, 95 }, 96] 97 98WSGI_APPLICATION = 'deploy.wsgi.application' 99 100 101# Database 102# https://docs.djangoproject.com/en/3.0/ref/settings/#databases 103""" 104DATABASES = { 105 'default': { 106 'ENGINE': 'django.contrib.gis.db.backends.postgis', 107 'NAME': 'geodjangodb3', 108 'USER': 'geo_admin', 109 'PASSWORD': 'geoadmin', 110 'HOST': 'localhost', 111 'PORT':'5432',#heroku 112 } 113} 114""" 115 116# Password validation 117# https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators 118 119AUTH_PASSWORD_VALIDATORS = [ 120 { 121 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 122 }, 123 { 124 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 125 }, 126 { 127 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 128 }, 129 { 130 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 131 }, 132] 133 134 135# Internationalization 136# https://docs.djangoproject.com/en/3.0/topics/i18n/ 137 138LANGUAGE_CODE = 'ja-JP' 139 140TIME_ZONE = 'Asia/Tokyo' 141 142USE_I18N = True 143 144USE_L10N = True 145 146USE_TZ = True 147 148 149# ログイン後、10時間でタイムアウト 150SESSION_COOKIE_AGE = 36000 151 152# Static files (CSS, JavaScript, Images) 153# https://docs.djangoproject.com/en/3.0/howto/static-files/ 154 155STATIC_URL = '/static/' 156STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')#元はstatic 157STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)#元はmap/atatic 158# ↓ heroku追加 159STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' 160 161MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 162MEDIA_URL = '/media/' 163 164# heroku用 165try: 166 from .local_settings import * 167except ImportError: 168 pass 169 170if not DEBUG: 171 import django_heroku 172 django_heroku.settings(locals()) 173 import dj_database_url 174 DATABASES['default'] = dj_database_url.config() 175 DATABASES['default']['ENGINE'] = 'django.contrib.gis.db.backends.postgis' 176 GDAL_LIBRARY_PATH = os.getenv('GDAL_LIBRARY_PATH') 177 GEOS_LIBRARY_PATH = os.getenv('GEOS_LIBRARY_PATH')

procfile

1web: gunicorn geodj.wsgi --log-file -

requirements.txt

requirements

1asgiref==3.2.9 2brotlipy==0.7.0 3certifi==2020.6.20 4cffi==1.14.0 5chardet==3.0.4 6cryptography==2.9.2 7dj-database-url==0.5.0 8Django==3.0.7 9django-cleanup==5.1.0 10django-cors-headers==3.2.1 11django-filter==2.3.0 12django-heroku==0.3.1 13django-leaflet==0.27.1 14djangorestframework==3.11.0 15djangorestframework-gis==0.15 16fastcache==1.1.0 17future==0.18.2 18glob2==0.7 19gunicorn==20.0.4 20idna==2.9 21importlib-metadata==1.6.1 22Markdown==3.2.2 23mpmath==1.1.0 24olefile==0.46 25Pillow==7.2.0 26psycopg2==2.8.5 27psycopg2-binary==2.8.6 28pycparser==2.20 29pyOpenSSL==19.1.0 30PySocks==1.7.1 31pytz==2020.1 32requests==2.24.0 33six==1.14.0 34sqlparse==0.3.1 35sympy==1.6.2 36urllib3==1.25.9 37whitenoise==5.2.0 38win-inet-pton==1.1.0 39wincertstore==0.2 40zipp==3.1.0

wsgi.py

wsgi

1""" 2WSGI config for geodj project. 3 4It exposes the WSGI callable as a module-level variable named ``application``. 5 6For more information on this file, see 7https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/ 8""" 9 10import os 11from django.core.wsgi import get_wsgi_application 12 13os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'geodj.settings') 14 15application = get_wsgi_application()

試したこと

heroku run python manage.py checkしても
System check identified no issues (0 silenced).となり問題なさそうです。

djangoアプリを作り直したところ、アプリのurl/adminとすると
デフォルトのログイン画面(自分で作ったログイン画面ではない)が表示されます。
管理画面で登録したデータがherokuのデータベースに登録できていることを
確認できました。
管理画面からサイト画面に移るとserver error(500)となり、
上記と同じエラーログがでています。
管理画面が見れて、indexなどが見れないということはpathがおかしいのでしょうか?

url

1#url.py 2 3from django.contrib import admin 4from django.urls import include, path 5from map.views import areaViewSet,upl_imgsViewSet 6from rest_framework.routers import DefaultRouter 7from map.views import index, GeojsonAPIView, upload 8# 画像表示用 9from . import settings 10from django.contrib.staticfiles.urls import static 11from django.contrib.staticfiles.urls import staticfiles_urlpatterns 12 13router = DefaultRouter() 14router.register('area', areaViewSet)# area用 15router.register('upl_imgs', upl_imgsViewSet)# upl_imgs用 16 17urlpatterns = [ 18 path('admin/', admin.site.urls), 19 path('api/', include(router.urls)), 20 path('accounts/', include('django.contrib.auth.urls')), 21 path('', index, name='map_index'), 22 path('map/geojson/', GeojsonAPIView.as_view(), name='geojson_view'), 23 path('upload/', upload, name='upload'), 24] 25# 画像表示用 26urlpatterns += staticfiles_urlpatterns() 27urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 28

tree

1C:. 2├─deploy 3| ├─__init.py 4| ├─asgi.py 5| ├─local_settings.py 6| ├─settings.py 7| ├─urls.py 8| ├─wsgi.py 9├─map 10│ ├─data 11│ ├─migrations 12│ ├─static 13│ │ └─map 14│ │ ├─css 15│ │ └─js 16│ ├─templates 17│ │ ├─map 18| | | ├─index.html 19| | | ├─upload.html 20│ │ └─registration 21| | | └─login.html 22├─media 23│ └─image 24├─static 25├─staticfiles 26│ ├─admin 27│ ├─gis 28│ ├─leaflet 29│ ├─map 30│ └─rest_framework 31├─__init__.py 32├─manage.py 33├─Procfile 34├─requirements.txt 35├─runtime.txt 36└─.gitignore

補足情報(FW/ツールのバージョンなど)

windows10
python3.6.10
django3.0.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

attakei

2020/11/19 02:00

ひとまず実施可能であれば、DEBUG = Trueにして出力情報を増やすところから始めたらどうでしょうか。 (DEBUG = Trueでもsettings.pyのheroku関連処理を有効にした上で)
yamatar

2020/11/19 02:31

ご連絡ありがとうございます。 DEBUG = Trueのままデプロイできるとは思っていなかったです。 ・DEBUG = Trueにしてheroku関連を有効にする。 ・https://teratail.com/questions/218279を参考にheroku config:set DISABLE_COLLECTSTATIC=0にする。 上記2点を実施したところ、djangoアプリを表示することができましたが、 javascript、cssなどが動いていないようです。 (HTMLに直接書き込んだcssは表示されています) エラー: Refused to apply style from '<URL>' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled. Failed to load resource: the server responded with a status of 404 (Not Found)
guest

回答1

0

自己解決

原因はhtmlファイルに書いた拡張子の間違いでした。

html

1<link rel="apple-touch-icon" sizes="180x180" href="{% static 'map/favicon180.ico' %}"> .icoは間違い 2 3<link rel="apple-touch-icon" sizes="180x180" href="{% static 'map/favicon180.png' %}"> .pngが正解

これが何故分かったかというと、以下のサイトを参考にDEBUG=Falseのままエラーを表示させたところ、上記箇所で"Valueerror"となっていた。

参考サイト
https://qiita.com/yuu-eguci/items/a1e4b0a2f238d5ccc985

修正箇所;
settings.pyの最後に以下を追加

settings

1from django.views.decorators.csrf import requires_csrf_token 2from django.http import ( 3 HttpResponseBadRequest, HttpResponseForbidden, HttpResponseNotFound, 4 HttpResponseServerError,) 5@requires_csrf_token 6def my_customized_server_error(request, template_name='500.html'): 7 import sys 8 from django.views import debug 9 error_html = debug.technical_500_response(request, *sys.exc_info()).content 10 return HttpResponseServerError(error_html)

url.pyの最後に以下を追加

url

1from map.views import my_customized_server_error 2handler500 = my_customized_server_error

DEBUG=Falseでエラー原因が分からない場合は試してみて下さい。

投稿2020/11/24 05:06

yamatar

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問