如何使用 "sinatra/reloader"?

7
我有一个名为web.rb的文件,其中包含以下内容:
require 'rubygems' 
require 'sinatra'  
require "sinatra/reloader"

我通过双击web.rb快捷方式启动了我的Web应用程序。在web.rb中做任何更改后,我必须退出sinatra并再次运行它。

我认为"sinatra/reloader"可以帮助我避免手动重新加载。

配置(MS Windows)

  • ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32]

  • sinatra (1.2.6, 1.0)

  • sinatra-advanced-routes (0.5.1)
  • sinatra-reloader (0.5.0)
  • sinatra-sugar (0.5.1, 0.5.0)
  • thin (1.2.7 x86-mswin32)

它对我有效。你使用的Sinatra和Ruby版本是什么? - Vasiliy Ermolovich
这很奇怪。在我的配置上它可以工作。无论如何,您可以尝试使用http://www.sinatrarb.com/faq.html#reloading这种方法。顺便问一下,您尝试过所有这些方法吗?https://github.com/rkh/sinatra-reloader/blob/master/README.md - Vasiliy Ermolovich
我只尝试了第一种方法 = require "sinatra/reloader"。Shotgun在Windows上无法工作。 - Radek
你对 web.rb 做了哪些改动? - Vasiliy Ermolovich
比如添加新视图(get '/tt' do
haml :tt end)或更改 Ruby 代码。我在那里有一些函数...
- Radek
你能否用一个文件实现这个功能?只需添加以下代码 get "/" do "Hello" end,然后再添加另一个路由,无需视图。 - Vasiliy Ermolovich
2个回答

5
register Sinatra::Reloader

我几个月前改用了rack-reloader,但发现即使使用hack也不能很好地工作,于是又切换回去,但忘记使用register

Sinatra的缺点有时是文档略显晦涩难懂。


在Sinatra子类的顶部。 - prater

0

如果我通过 "ruby web.rb" 在dos提示符下启动我的Web应用程序,一切都正常。

但是,如果我通过以下方式启动我的Web应用程序:

  • 双击web.rb文件或
  • 从批处理文件中启动

应用程序会启动,但sinatra-reload无法正常工作。

@nash感谢您的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接