Ruby 我可以在不重新启动服务器的情况下执行Sinatra程序吗?
当我修改代码时,必须重新启动服务器才能看到结果。有什么出路吗?有几个选项,详细内容见。最简单的方法似乎是使用鸟枪,您可以按如下方式安装和调用:Ruby 我可以在不重新启动服务器的情况下执行Sinatra程序吗?,ruby,sinatra,Ruby,Sinatra,当我修改代码时,必须重新启动服务器才能看到结果。有什么出路吗?有几个选项,详细内容见。最简单的方法似乎是使用鸟枪,您可以按如下方式安装和调用: $ sudo gem install shotgun $ shotgun myapp.rb 或者,如果您使用从Sinatra::Base继承来定义应用程序,并使用config.ru文件: $ shotgun config.ru -p 4567 如果使用Phusion Passenger,可以将此文件放在应用程序的根文件夹中 tmp/always_re
$ sudo gem install shotgun
$ shotgun myapp.rb
或者,如果您使用从Sinatra::Base继承来定义应用程序,并使用config.ru
文件:
$ shotgun config.ru -p 4567
如果使用Phusion Passenger,可以将此文件放在应用程序的根文件夹中
tmp/always_restart.txt
它将在每次请求时重新启动
(第8.7节)更好的方法是使用来自sinatra contrib gem(也来自)的重新加载程序:首先安装sinatra contrib gem,然后确保您的应用程序.rb文件以以下行开头:
require 'sinatra'
require 'sinatra/reloader' if development?
然后将重新加载任何修改的配置文件(无需重新启动服务器!)如果从项目目录执行shotgun
,它将自动找到config.ru
。请注意,shotgun会自动重新启动应用程序。应该明确区分自动考虑更改和重新启动应用程序+1尽管如此。如果在OS X上使用37signal的pow
,上述方法也有效,并且在开发过程中非常方便。()我认为如果您以模块化方式运行Sinatra,则此方法不起作用?