Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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静态404500错误页面?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何在没有站点布局的情况下呈现rails静态404500错误页面?

Ruby on rails 如何在没有站点布局的情况下呈现rails静态404500错误页面?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我使用的是rails 3。在生产环境中,rails很好地处理异常,并从公共目录加载静态404.html、500.html等文件。但是,它会将这些文件加载到我的layouts/application.html.erb文件中。我正在寻找一种方法来指导rails在不使用我的应用程序布局的情况下加载这些文件-例如,只提供静态html文件而不提供其他内容。实现这一目标的最佳方式是什么 谢谢 render:file=>'public/404.html',:status=>:not_found,:layout

我使用的是rails 3。在生产环境中,rails很好地处理异常,并从公共目录加载静态404.html、500.html等文件。但是,它会将这些文件加载到我的layouts/application.html.erb文件中。我正在寻找一种方法来指导rails在不使用我的应用程序布局的情况下加载这些文件-例如,只提供静态html文件而不提供其他内容。实现这一目标的最佳方式是什么


谢谢

render:file=>'public/404.html',:status=>:not_found,:layout=>false
用于在Rails框架内工作的高级方法。更新您的
路由
文件:

get "/404", to: "errors#error_404"
get "/500", to: "errors#error_500"
添加一个
错误控制器

layout false

def error_404
  render status: 404
end

def error_500
  render status: 500
end
然后在
app/views/errors/
中添加
error_404.erb
error_500.erb
文件以及一个和一个搜索栏


.

据我所知,rails默认情况下加载这些错误页面而不加载布局/application.html.erb,如果我错了请纠正我,我在heroku上托管并且它正在我的应用布局中加载这些文件…它必须是
:status=>:not_found
和not
:status=>“not_found”
,这让我很困惑,但它现在正在工作。谢谢@在你的控制器的某个地方。