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 错误 + 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Heroku 上部署后 API 端点返回 500 错误

如何在没有添加的情况下在 Heroku 中启用堆栈跟踪

Django + nginx + gunicorn 给出 502 错误。日志信息很少[关闭]

Django Admin 在生产 Heroku 中引发 500 错误

Shiro登录错误500(rememberMe=true情况下)

Heroku/Django 部署:为啥我在成功部署和静态收集时收到错误 500?