Heroku 在信息很少的情况下给出 500 错误 + 内部服务器错误
Posted
技术标签:
【中文标题】Heroku 在信息很少的情况下给出 500 错误 + 内部服务器错误【英文标题】:Heroku giving 500 error with little information + Internal Server Error 【发布时间】:2018-02-11 18:31:09 【问题描述】:Heroku 在页面上显示此消息:
"internal server error"
此错误显示在控制台中:
GET https://frozen-gorge-82417.herokuapp.com/auth/github/callback?error=redirect_uri_mismatch&error_description=The+redirect_uri+MUST+match+the+registered+callback+URL+for+this+application.&error_uri=https%3A%2F%2Fdeveloper.github.com%2Fv3%2Foauth%2F%23redirect-uri-mismatch500(内部服务器错误)
【问题讨论】:
【参考方案1】:检查您的 Heroku 应用程序的日志以查看更多详细信息。您可以在登录后使用Heroku CLI 流式传输日志:
heroku logs -t
或者,您可以在app dashboard 上查看日志。
【讨论】:
谢谢,使用后我知道我是否忘记将环境变量添加到 Heroku【参考方案2】:显然,我显示了同样的错误,但在 3-4 分钟后,web 应用程序终于在 heroku 上加载了。很可能是由于在 heroku 的服务器上设置网页造成的。
【讨论】:
您看到这些 5XX 错误的原因可能有很多,但在这种情况下,您很可能遇到了 H81(空白应用程序)或 H14(没有运行 Web dynos),这两种情况都会导致HTTP 503 响应。确定的方法是检查应用程序仪表板中的日志或使用例如heroku logs -t
。错误代码帮助文章中提供了详细错误代码描述的完整列表:devcenter.heroku.com/articles/error-codes【参考方案3】:
你使用数据库吗?如果是,请不要忘记在您的 heroku 项目的资源中添加数据库插件,并在数据库中创建您需要的表。
【讨论】:
欢迎堆栈溢出。考虑将此作为评论而不是答案发布。获得一定数量的声望点后,您将能够将 cmets 发布到其他问题/答案。 谢谢拉胡尔。就像你说的,我没有足够的声望点来做一个 cmets。【参考方案4】:在你的控件和文件名视图(html)中检查响应重定向,大写和小写字符非常有影响
【讨论】:
【参考方案5】:我遇到了同样的问题。该应用程序在本地可以运行,但是当我将其推送到 heroku 时,我遇到了内部服务器错误。然后我意识到这条路是不为人知的。
假设这是 heroku 上应用的 url,https://myapp.herokuapp.com
这个 url 是错误的,因为路由没有退出,看起来不像我拥有的任何路由。我的路线以 myapp/ 开头,或者我的基本 url 是,myapp/
https://myapp.herokuapp.com/myapp/ 为我工作。
我在本地运行 http://127.0.0.1:5000/myapp/ 应该与 heroku 上的 https://myapp.herokuapp.com/myapp/ 相同
【讨论】:
【参考方案6】:我通过从我的 gitignore 中删除 .env 文件解决了我的问题。
【讨论】:
小心!任何项目的 .env 都应该在 gitignore 中;出于安全原因,您想要这个。您的环境变量(.env 文件的内容)应该受到保护并与您的代码分开。解决方案:您应该手动将环境变量输入到 Heroku 仪表板的配置设置中。这是正常且正确的做法。【参考方案7】:在将代码推送到 heroku 时,我从 gitignore 文件中删除了 .env 文件。它对我有用。
【讨论】:
【参考方案8】:如果您的应用程序有一个数据库(它应该),请确保进行迁移并执行迁移。 您可以使用 Heroku 应用仪表板中的 Heroku CLI 执行此操作。
进行迁移 ==> python manage.py makemigrations
要迁移 ==> python manage.py migrate
如果上述建议不能解决 (500) 问题,请转到您的环境变量并将其值更改为 True。然后返回到您的应用程序以阅读错误消息。你的提示一定会在那里。
干杯!
【讨论】:
【参考方案9】:我遇到了同样的问题。对我来说,问题出在 my_project/wsgi.py 中。我在 my_project/my_project/settings 文件夹下设置了 3 个设置文件,并且在 manage.py 下配置了必要的配置以检测设置文件,但忘记了 my_project/wsgi.py 下的配置/强>。所以解决这个问题为我解决了问题。
【讨论】:
以上是关于Heroku 在信息很少的情况下给出 500 错误 + 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
Django + nginx + gunicorn 给出 502 错误。日志信息很少[关闭]
Django Admin 在生产 Heroku 中引发 500 错误