【问题标题】:Rails Server is not finishing inside terminalRails Server 未在终端内完成
【发布时间】:2012-09-20 20:58:24
【问题描述】:

我是 Rails 新手,正在学习 RonR3 教程。除了第 59 页,一切都运行良好

$ rails generate scaffold Micropost content: String user_id:integer. 

当我尝试运行 rails s 或 rails server 时,我的终端应用程序似乎永远不会结束。当我在 10 多个小时后按 ctrl-c 关闭服务器时,在 localHost 上找不到该站点。任何帮助将非常感激。

一切似乎都停止了:

Started GET "/assets/users.js?body=1" for 127.0.0.1 at 2012-09-20 13:33:54 -0400
Served asset /users.js - 304 Not Modified (0ms)


Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2012-09-20 13:33:54 -0400
Served asset /jquery_ujs.js - 304 Not Modified (0ms)

在此之后,终端只是坐在那里无所事事......

【问题讨论】:

  • 所以您尝试通过浏览器访问localhost:3000,但它就在那里?终端不应该在前台做任何事情,除了在启动后显示日志信息。
  • 您希望服务器继续运行吗?但关闭终端?
  • 首先,感谢您的快速回复。现在我被困住了,因为这本书让我调用 Rails S,它开始很好但是,它永远不会让我访问命令提示符。昨晚我让计算机运行,认为这可能只是一个缓慢的过程。但是当我今天早上醒来时,同样的问题在终端中没有命令行。所以,我 cntl-c 让服务器停止。此时无法从浏览器查看 localhost。当我再次启动 rails s 时,localhost 立即工作....但没有终端就无法继续前进。再次感谢您提前提供的任何帮助。
  • 您可能希望将其称为“Rails”或“RoR”。
  • 这很正常。 rails server(或short rails s)启动服务器并保持运行。在此终端中,您将看到 Rails 服务器的所有输出,例如所有异常/错误。只需使用一个终端来运行服务器,其他一切都可以使用。

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

如果程序从终端运行,它们将在那里运行,除非它们停止或有守护程序选项。当你按下 ctrl-c 时,rails webbrick 服务器停止,所以当然 localhost 不会显示任何东西。

当服务器坐在那里时,它正在等待用户访问该站点。例如,它不会渲染视图,除非有渲染视图的请求。

如果您想在仍然使用同一个终端窗口的同时运行网络服务器,您需要将rails s 作为守护进程(后台进程)运行。相反,以rails s -d 运行命令,这将“分离”服务器进程。

附带说明,如果您的操作系统有 GUI/窗口管理器,为什么不打开多个终端窗口。我通常会打开三个终端窗口来运行服务器、进行 git 提交、检查 rake routes 等。

相关问题:Running Webrick server in background?

【讨论】:

  • 大猩猩:谢谢-我会立即尝试。不幸的是,我不仅是编程新手,还有 RonR 和 Mac :) 当您发表评论时,这非常有意义 - 再次感谢您抽出宝贵时间回复。
  • 没问题。我仅在 7 个月前开始使用 RoR,所以我理解。这个网站很有帮助,因为您有时会发现您甚至不知道使用 google 搜索您的问题的正确术语。如果您还没有,请查看railscasts.com 并以每月 9 美元的价格获得专业版。这很值得。此外,您可以将问题标记为已回答。
猜你喜欢
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 2018-03-25
  • 1970-01-01
相关资源
最近更新 更多