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

Ruby on Rails本地页面访问报错:Cannot GET /simple_pages/about

解决 Rails 本地访问 "Cannot GET" 问题的实用排查步骤

嘿,我碰到过好几次类似的问题,结合你说的情况——别人修改git仓库后出现本地localhost:3000访问返回"Cannot GET",已经更新过Gems但没用,咱们一步步来排查:

  • 先确认根路由配置是否完好
    打开项目里的config/routes.rb文件,看看有没有根路径的定义,正常应该是类似这样的:

    root "home#index"
    # 或者对应你实际想用的控制器和动作
    

    如果这条配置没了,或者被改成了错误的路径,那访问根目录肯定会404。要是缺的话补上,然后重启服务器试试。

  • 检查服务器启动的细节和日志
    启动服务器时(执行rails s),别光盯着浏览器,看看终端里的输出:有没有报错?比如数据库连不上、某个Gem没装全?另外,当你刷新localhost:3000时,终端里会不会打出请求日志?如果连请求记录都没有,那可能是服务器没正常监听3000端口,或者端口被别的程序占了——可以试试换个端口启动:rails s -p 3001。

  • 排查git修改带来的配置变动
    既然问题是别人修改仓库后出现的,建议你用git看看最近的改动,重点查这些关键文件:

    • config/routes.rb(路由会不会被误删了?)
    • Gemfile/Gemfile.lock(有没有改Rails版本或者依赖?)
    • config/environments/development.rb(开发环境配置有没有变动?)
      用这个命令看差异:
    git diff HEAD~1 HEAD
    

    说不定是别人修复问题时不小心动了路由或者服务器配置。

  • 彻底清理依赖和缓存
    虽然你说已经更了Gems,但有时候缓存或者残留的旧依赖会搞事情,试试这套命令:

    bundle clean --force
    bundle install
    rails tmp:clear
    

    清理完再重启服务器,说不定能解决隐性的依赖问题。

  • 确认对应控制器和视图存在
    要是路由里写了root "home#index",那得确保app/controllers/home_controller.rb存在,而且里面有index动作,同时app/views/home/index.html.erb(或者你用的其他模板文件)也得在。不然路由找到了,但没对应的页面也会报错。

对了,还有个小细节:你提到的404页面看起来不像Rails默认的,会不会是你在错误的目录下启动了其他服务器?比如之前的Node项目?一定要确保是在Rails项目的根目录下执行rails s哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:32:44