Rails + Heroku中的自定义错误页面

时间:2017-02-15 00:12:01

标签: ruby-on-rails heroku

我想按照this post在我的rails应用程序上呈现错误页面,但是将其更改为与Heroku一起使用。

后置筹码:Rails + Nginx + Capistrano 我的堆栈:Rails + Heroku。

my-app.herokuapp.com/assets/XXX.html网址正在运行,但我需要呈现my-app.herokuapp.com/XXX.html

我想我需要更改从帖子中获取的以下代码,以便与Heroku一起使用!

root /myapp/current/public;
error_page 404 /404.html;
location /404.html {
  internal;
  root /myapp/current/public/assets;
}

2 个答案:

答案 0 :(得分:0)

Heroku与您关注的原始帖子完全不同:

默认情况下,您的应用在应用 public / 目录中的html文件中提供404,422和500的其他错误。

对于503错误,您需要设置ERROR_PAGE_URL环境变量,该变量指向发生错误时要服务的静态页面:

heroku config:set ERROR_PAGE_URL=//s3.amazonaws.com/<your_bucket>/your_error_page.html

有关其他自定义设置,请参阅https://devcenter.heroku.com/articles/error-pages#configure-your-application

答案 1 :(得分:0)

前几天我做了那个功能,我找到了最清晰实用的文章https://thepugautomatic.com/2014/08/404-with-rails-4/

但是如果你想要处理500或其他错误,你应该在路由中添加一个字符串,并在'CustomPublicExceptions'中添加条件到状态