如何修复因在 Django 中将 DEBUG 设置为 False 而导致的 Heroku "server error(500)"?



我知道这个问题在这里已经讨论了一千次,但我不能停止再次提出它,因为我很难找到这个问题的原因和可行的解决方案。所以,我的问题是当我在 heroku 上设置DEBUG=True时,一切正常,如果设置为 False ,它会给出服务器错误(500)。请帮帮我!

我尝试过但没有奏效的事情:

  1. 在本地运行collectstatic,然后尝试添加、提交并推送到 Heroku,但没有奏效。
  2. 完成ALLOWED_HOSTS = ["herokuapp.com"]
  3. 无论如何,当没有任何工作时,将数据库从sqlite切换到postgres,它工作正常。但不知何故,错误仍然存在!

我的wsgi.py文件如下所示:

import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "website.settings")
application = get_wsgi_application()

我看到的英雄日志:

2019-01-05T17:41:17.844144+00:00 app[web.1]: [2019-01-05 17:41:17 +0000] [10] [INFO] Booting worker with pid: 10
2019-01-05T17:41:17.857502+00:00 app[web.1]: [2019-01-05 17:41:17 +0000] [11] [INFO] Booting worker with pid: 11
2019-01-05T17:41:18.234497+00:00 app[web.1]: base dir path /app
2019-01-05T17:41:18.240629+00:00 app[web.1]: local settings failed
2019-01-05T17:41:18.357015+00:00 app[web.1]: base dir path /app
2019-01-05T17:41:18.358185+00:00 app[web.1]: local settings failed
2019-01-05T17:41:19.010564+00:00 heroku[web.1]: State changed from starting to up
2019-01-05T17:41:21.230071+00:00 app[web.1]: 10.28.83.116 - - [05/Jan/2019:17:41:21 +0000] "GET / HTTP/1.1" 500 27 "https://dashboard.heroku.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0"
2019-01-05T17:41:21.230836+00:00 heroku[router]: at=info method=GET path="/" host=obscure-dusk-29347.herokuapp.com request_id=b5fb4554-fa37-4e39-b710-fae1ac8c6651 fwd="103.208.75.78" dyno=web.1 connect=1ms service=184ms status=500 bytes=234 protocol=https
2019-01-05T17:41:21.670528+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=obscure-dusk-29347.herokuapp.com request_id=0d271d43-17a0-4b37-aff1-51767d192d35 fwd="103.208.75.78" dyno=web.1 connect=1ms service=20ms status=404 bytes=266 protocol=https

我终于做到了!

settings.py中的DEBUG变量就像DEBUG = config('DEBUG', default=False, cast=bool).所以我只是把它改成DEBUG = config('DEBUG')它就起作用了。

最新更新