gpt4 book ai didi

ruby-on-rails - nginx+passenger 上的 rails 应用程序未显示自定义错误页面

转载 作者:行者123 更新时间:2023-12-04 21:18:49 26 4
gpt4 key购买 nike

我有一个在 nginx 1.2.0 和乘客 3.0.7 上运行的 Rails 应用程序。我希望在应用程序中发生适当的 http 错误时显示 Rails 应用程序中的自定义错误页面(例如/rail_app/public/500.html)。

这是我当前的 nginx 配置文件:

http {
passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7;
passenger_ruby /usr/bin/ruby;

include mime.types;
default_type application/octet-stream;

#access_log /opt/nginx/logs/access.log main;

sendfile on;
#tcp_nopush on;

server {
listen 80;
server_name localhost;
root /var/www/dashboard/current/public;
passenger_enabled on;
passenger_min_instances 1;
# listen 443;
# ssl on;
# ssl_certificate /opt/nginx/conf/server.crt;
# ssl_certificate_key /opt/nginx/conf/server.key;
error_page 500 502 503 504 /500.html;
location = /500.html {
root /var/www/dashboard/current/public/;
}
}
}

此配置不显示 rails 应用程序客户错误页面,而只是将 http 错误状态代码发送到客户端。

任何人都知道让 nginx/passenger 将带有 http 错误状态代码的 rails 应用程序自定义错误页面发送到客户端需要什么?

最佳答案

请尝试以下操作:

# We use the x just because it is for all 5xx errors.
error_page 500 502 503 504 /5xx.html;
location = /5xx.html {
alias /var/www/dashboard/current/public/;
}

重新配置 root指令没有意义,因为它已经设置为您之前指定的路径。 alias确保特定位置在内部匹配到文件系统上的不同位置。所有传入的请求参数都应该被传递,如果你的 Rails 应用程序在此时处理事情,它应该回答。只需确保您的 Rails 应用程序不再以 500 状态响应(我不知道会发生什么)。

相关链接
  • alias
  • 关于ruby-on-rails - nginx+passenger 上的 rails 应用程序未显示自定义错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16609947/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com