Heroku:可以关闭自定义错误页面吗?

时间:2012-05-11 12:33:01

标签: heroku

我刚刚将一个Node.js站点(基于Express构建)迁移到Heroku,我发现在应用程序错误的情况下,Heroku会显示其自定义错误页面而不是我的应用程序返回的任何内容。

我希望不这样做,因为Express已经提供a mechanism来做这件事,而我的应用就是这么做的。是否有可能告诉Heroku使用我的应用程序返回的任何内容?

我更喜欢这个的一个例子是因为我的应用程序的错误页面可以正确显示登录或注销状态,这是静态页面,例如在S3上,做不到。另一个例子是我的应用程序实际上根据精确的5xx状态代码显示不同的页面,而Heroku则将所有5xx代码视为相同。

编辑:考虑另一个特别值得注意的例子:我们的应用为每个错误实例创建唯一的ID,并在错误页面上向用户显示该ID,以便在/当他们联系我们,我们可以在日志中查找确切的错误实例。使用静态页面无法做到这一点。

我意识到Heroku只能通过状态代码检测到错误,所以我可以在发生错误的情况下发回200。但这似乎是错误的 - 例如在404s的情况下你不会发回200。 (并且想到它,Heroku上的REST API如何为5xx返回JSON?希望Heroku的自定义错误页面只覆盖HTML响应?)

提前致谢!

1 个答案:

答案 0 :(得分:1)

直接回答问题 - 不,你不能关闭Heroku错误页面......

Heroku处理的错误是您的应用程序没有的错误,因此如果您的应用程序捕获错误并返回页面,那么Heroku将不会介入。

我有很多应用程序,当然不是Node,这样做。