Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails+;赫罗库_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails Rails+;赫罗库

Ruby on rails Rails+;赫罗库,ruby-on-rails,heroku,Ruby On Rails,Heroku,我想通过以下方式呈现rails应用程序上的错误页面,但将其更改为与Heroku一起使用 后堆栈:Rails+Nginx+Capistrano. 我的堆栈:Rails+Heroku my app.herokuapp.com/assets/XXX.htmlURL正在工作,但我需要呈现my app.herokuapp.com/XXX.html 我想我需要修改下面的代码,摘自帖子,以便与Heroku合作 root /myapp/current/public; error_page 404 /404.ht

我想通过以下方式呈现rails应用程序上的错误页面,但将其更改为与Heroku一起使用

后堆栈:Rails+Nginx+Capistrano.
我的堆栈:Rails+Heroku

my app.herokuapp.com/assets/XXX.html
URL正在工作,但我需要呈现
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;
}

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

默认情况下,每发生一次错误,您的应用程序将从应用程序的public/directory中的html文件中提供404、422和500

对于503个错误,您需要设置
ERROR\u PAGE\u URL
环境变量,该变量在发生错误时指向您要服务器的静态页面:

heroku config:set ERROR_PAGE_URL=//s3.amazonaws.com/<your_bucket>/your_error_page.html
heroku config:set ERROR\u PAGE\u URL=//s3.amazonaws.com//your\u ERROR\u PAGE.html

请参阅以了解其他自定义设置。

我几天前完成了该功能,我发现这篇文章最清晰、最有用


但是,如果您想处理500个错误或其他错误,您应该在routes和“CustomPublicExceptions”中添加一个字符串,并在status中添加条件

,谢谢,但当rails应用程序中发生异常时,heroku的自定义错误页不会显示。当heroku发生错误时,会出现错误页面。我想处理我的rails应用程序的错误。你是对的,我已经更新了我的答案,包括如何自定义404、422和500错误的错误消息。谢谢你,如果我找不到解决方案,我会给你一个机会。但我的想法是,如果应用程序崩溃,不要使用Rails stuff(controller)来呈现错误