Ruby on rails Rails自定义错误页面赢得';在Nginx上渲染
我是Rails和Nginx的新手。我被要求在我们的应用程序中添加自定义错误页面。我在这个网站上找到了这样做的说明,我的自定义错误页面在本地呈现得很好。当我转到urlRuby on rails Rails自定义错误页面赢得';在Nginx上渲染,ruby-on-rails,ruby,nginx,Ruby On Rails,Ruby,Nginx,我是Rails和Nginx的新手。我被要求在我们的应用程序中添加自定义错误页面。我在这个网站上找到了这样做的说明,我的自定义错误页面在本地呈现得很好。当我转到url/no\u-so\u页面时,我会看到相应的页面。当我将代码部署到运行nginx的测试服务器并尝试相同的url时,我看到了以下内容: 500内部服务器错误 如果您是此网站的管理员,请阅读此web应用程序的日志文件和/或web服务器的日志文件,以了解出现的问题` 在nginx服务器上,如果我转到url\404,那么我确实看到了我的页面,因
/no\u-so\u页面时,我会看到相应的页面。当我将代码部署到运行nginx的测试服务器并尝试相同的url时,我看到了以下内容:
500内部服务器错误
如果您是此网站的管理员,请阅读此web应用程序的日志文件和/或web服务器的日志文件,以了解出现的问题`
在nginx服务器上,如果我转到url\404
,那么我确实看到了我的页面,因此我知道它呈现正常。
我的本地计算机和服务器都在开发环境下运行
我已将此添加到config\development.rb
:
config.consider_all_requests_local = false
config.exceptions_app = self.routes
%w(404 500).each do |code|
get code, to: "errors#show", :code => code, :via => :all
end
下面是我添加到routes.rb的内容:
config.consider_all_requests_local = false
config.exceptions_app = self.routes
%w(404 500).each do |code|
get code, to: "errors#show", :code => code, :via => :all
end
我的控制器如下所示:
class ErrorsController < ApplicationController
def show
status_code = params[:code] || 500
render status_code.to_s
end
end
类错误控制器
有人知道我的nginx配置中是否需要做一些特殊的事情来实现这一点吗
500内部服务器错误如果您是此网站的管理员,请阅读此web应用程序的日志文件和/或web服务器的日志文件,以了解发生了什么错误
此错误消息来自Rails本身,而不是Nginx
这意味着您的自定义错误页本身正在引发异常,这将导致错误->显示错误页->错误->显示错误页->的无限循环。。。Rails检测到这一点,并在看到错误消息时停止。检查日志中的此字符串以查看错误:
Error during failsafe response:
500内部服务器错误如果您是此网站的管理员,请阅读此web应用程序的日志文件和/或web服务器的日志文件,以了解发生了什么错误
此错误消息来自Rails本身,而不是Nginx
这意味着您的自定义错误页本身正在引发异常,这将导致错误->显示错误页->错误->显示错误页->的无限循环。。。Rails检测到这一点,并在看到错误消息时停止。检查日志中的此字符串以查看错误:
Error during failsafe response:
谢谢你,马特!我想我被它在本地工作而不是在服务器上这一事实所困扰,所以我把责任归咎于nginx。我在var/log/nginx
中找到了我的错误日志,它将我指向了我忽略的东西。好了,谢谢你,马特!我想我被它在本地工作而不是在服务器上这一事实所困扰,所以我把责任归咎于nginx。我在var/log/nginx
中找到了我的错误日志,它将我指向了我忽略的东西。一切都准备好了。