当Debug = False时,Heroku中出现500错误

时间:2018-06-14 21:50:50

标签: python django heroku heroku-cli

我知道这个问题已被多次询问,但经过我能找到的几乎所有线索之后,我仍然在努力理解我的问题。我在heroku上有一个django项目,只要我设置设置变量debug = True就可以正常工作。 https://dry-depths-69493.herokuapp.com/

但是,一旦我将其设置为False,我就会收到500错误。我检查了settings.py,其中包含:

ALLOWED_HOSTS = ['dry-depths-69493.herokuapp.com','127.0.0.1',"localhost", "0.0.0.0", ".herokuapp.com"]

我在Django中设置了所有不必要的env变量,并且只添加了

COLLECTSTATIC:     1

我还包括了Whitenoise并添加了dj_database_url。有没有人有另一个想法,这些问题可能是什么原因?不幸的是,日志只是说这是一个500错误但没有具体细节。这是github-link: https://github.com/Datenrausch/heroku

2 个答案:

答案 0 :(得分:0)

要获得更多调试信息,我将使用heroku-cli和命令heroku run bash登录heroku dyno,然后使用./manage.py runserver运行Django webserver。这样你就应该看看是否有问题。

如果正常,请在后台(./manage.py runserver &)运行,然后尝试使用wget localhost:8000访问主页。此时,您应该有500错误调试信息。

答案 1 :(得分:0)

这似乎是一个WhiteNoise X Heroku问题。我通过使用这篇文章的方法解决了这个问题:

Django Debug=False whitenoise not working

至关重要的是似乎是settings.py中的这一部分:

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'