You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从GitHub部署Ruby on Rails应用到Vercel时遭遇404错误

Vercel部署Rails应用404问题排查 + Heroku替代部署方案

一、Vercel部署404问题解决思路

从你贴的routes.rb来看,根路由指向items#index,但Vercel运行Rails应用需要注意几个核心点:

  • 先确认ItemsController#index动作存在,对应的视图文件app/views/items/index.html.erb(或对应模板引擎文件)没有缺失
  • 必须在项目根目录配置vercel.json处理Rails路由重写,否则Vercel的静态文件服务会优先匹配,导致动态路由返回404。示例配置如下:
    {
      "installCommand": "bundle install",
      "buildCommand": "rails assets:precompile",
      "devCommand": "rails s",
      "routes": [
        { "src": "/(.*)", "dest": "/$1" }
      ]
    }
    
  • 查看Vercel部署日志:在部署页面的Logs标签下,检查是否存在构建失败、依赖缺失、数据库迁移未执行(如果应用依赖数据库)这类报错信息

二、Heroku免费版替代部署选项

给你几个上手简便的部署平台:

  • Render:和Heroku使用体验最接近,免费版有基础资源限制,支持一键关联GitHub仓库部署,自带PostgreSQL数据库选项
  • Fly.io:适合需要全球访问加速的应用,免费版提供基础额度,通过命令行即可完成部署,Rails官方有专门的适配指南
  • Railway:可视化操作界面友好,免费版有额度限制,支持Rails和多种数据库,关联仓库后自动完成构建部署
  • AWS Elastic Beanstalk:亚马逊旗下的PaaS平台,有免费试用额度,适合熟悉AWS生态的用户,可一键部署Rails应用

你的路由配置参考:

Rails.application.routes.draw do
  root to: 'items#index'
  get "pages", to: "pages#home"
  get "trigger_service", to: "pages#trigger_service"
  resources :items, only: [:update]
  post "/items/update-all", to: "items#update_all"
end

内容的提问来源于stack exchange,提问作者user20847337

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:27:47