【问题标题】:500 error in Heroku, when Debug=FalseHeroku 中的 500 错误,当 Debug=False 时
【发布时间】:2018-11-24 18:12:35
【问题描述】:

我知道这个问题已经被问过很多次了,但是在浏览了我能找到的几乎所有线程之后,我仍然在努力理解我的问题。我在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 中设置了所有不必要的环境变量,并且只添加了

COLLECTSTATIC:     1

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

【问题讨论】:

  • 你在开发服务器上运行过吗?

标签: python django heroku heroku-cli


【解决方案1】:

这似乎是 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'

【讨论】:

    【解决方案2】:

    要获得更多调试信息,我会使用 heroku-cli 和命令 heroku run bash 登录 heroku dyno,然后使用 ./manage.py runserver 运行 Django 网络服务器。这样你应该已经知道是否有问题了。

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

    【讨论】:

    • 感谢 Ludo,但不幸的是,这就是我得到的全部...python3 manage.py runserver&wget localhost:8000 [1] 11 --2018-06-15 06:01:32-- http://localhost:8000/ Resolving localhost (localhost)... 127.0.0.1 Connecting to localhost (localhost)|127.0.0.1|:8000... failed: Connection refused. ~ $ Performing system checks... System check identified some issues: WARNINGS: ?: (urls.W005) URL namespace 'honoradar' isn't unique. You may not be able to reverse all URLs in this namespace
    • 我不确定这是否是问题所在,但我会开始解决警告:您将 honoradar.urls 包含在您的 mysite/urls.py 中的两个不同网址中
    猜你喜欢
    • 2015-10-01
    • 2019-02-18
    • 2021-08-13
    • 2018-03-20
    • 2018-01-05
    • 2019-09-21
    • 2021-11-05
    • 2022-07-28
    • 2016-03-12
    相关资源
    最近更新 更多