gpt4 book ai didi

ruby-on-rails - `rails server puma` 与 `puma`

转载 作者:行者123 更新时间:2023-12-04 06:01:50 25 4
gpt4 key购买 nike

一些指南 ( example ) 推荐这个来启动自己的网络服务器

bundle exec rails server puma

但我总是用 puma 启动服务器直接地
bundle exec puma

通过 rails server 启动 puma(或任何其他服务器)时会发生什么特别的事情吗? ?

最佳答案

当您使用 rails s <server> ,服务器从 Rails 命令启动,并了解 Rails 环境。

例如,这使得使用 rails server command 提供的任何功能和标志成为可能。 .

rails s --help
Usage: rails server [mongrel, thin, etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=ip Binds Rails to the specified ip.
Default: 0.0.0.0
-c, --config=file Use custom rackup configuration file
-d, --daemon Make server run as a Daemon.
-u, --debugger Enable ruby-debugging for the server.
-e, --environment=name Specifies the environment to run this server under (test/development/production).
Default: development
-P, --pid=pid Specifies the PID file.
Default: tmp/pids/server.pid

-h, --help Show this help message.

例如,您可以将调试器附加到传递 --debugger 的 session 中。或守护服务器。

第二个优点是您可以版本化 Puma例如,因为您必须在 Gemfile 中列出 gem .如果您以 bundle exec 开头,这已经是正确的。就像你在做的那样。

相反,当您只运行 $ puma 时(或 $ bundle exec puma )您没有通过 Rails 系统。 Puma将尝试查找机架 bootstrap 文件并使用它(它起作用是因为 Rails 在应用程序根目录中提供了一个 config.ru 脚本。

一般来说,如果您不需要将特定选项传递给服务器,则没有真正的区别。我喜欢 puma,我倾向于在一些项目中使用它,即使在我们使用 Unicorn 的生产中,因此运行 $ puma作为独立命令很方便,因为我不需要将它添加到 Gemfile .

但是,我可能会选择 $ rails s puma如果我的整个堆栈都使用 Puma .这也是 command suggested in the documentation .

关于ruby-on-rails - `rails server puma` 与 `puma`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21213343/

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