升级Ruby 3.1.2与Rails 7.0.4后Heroku遇403错误求助
解决Rails 7部署Heroku后403 Host被阻止问题
问题根源
Rails 6及以上版本内置的ActionDispatch::HostAuthorization中间件会校验请求的Host头,默认仅放行本地开发相关域名(如localhost、127.0.0.1)。部署到Heroku后,应用域名leafletmapping.herokuapp.com不在默认允许列表内,因此被拦截返回403错误。
解决步骤
方案一:添加允许的Host(推荐生产环境使用)
编辑config/environments/production.rb文件,将Heroku域名加入允许列表:
# 新增或修改配置 config.hosts << "leafletmapping.herokuapp.com" # 若后续使用自定义域名,可一并添加 # config.hosts << "your-custom-domain.com"
方案二:禁用Host校验(仅临时测试或特殊场景使用)
若需快速验证,可直接关闭Host授权校验:
# 在config/environments/production.rb中设置 config.hosts = nil
部署验证
修改配置后,重新提交代码并部署到Heroku:
git add . git commit -m "Fix host authorization for Heroku deployment" git push heroku main
部署完成后访问应用,确认403错误已解决。
内容的提问来源于stack exchange,提问作者Jeremy Gradisher
相关产品推荐
相关产品推荐

