How to get Sinatra to auto-reload the file after e

2019-01-16 02:18发布

I am using

# my_app.rb
load 'index.rb'

and start the sever like this

ruby my_app.rb

but it never reload any changes I made in index page.
Did I miss anything here?

标签: ruby sinatra
9条回答
淡お忘
2楼-- · 2019-01-16 02:54

You can use the rerun gem.

gem install rerun
rerun 'ruby app.rb' 

OR if you are using rackup

rerun 'rackup'
查看更多
一夜七次
3楼-- · 2019-01-16 02:54

When you run the application with Passenger Standalone, just create a tmp/always_restart file:

$ touch tmp/always_restart.txt

See Passenger documentation for more info.

查看更多
劳资没心,怎么记你
4楼-- · 2019-01-16 02:56

See the Sinatra FAQ,

"How do I make my Sinatra app reload on changes?"

First off, in-process code reloading in Ruby is hard and having a solution that works for every scenario is technically impossible.

Which is why we recommend you to do out-of-process reloading.

First you need to install rerun if you haven’t already:

 $ gem install rerun

Now if you start your Sinatra app like this:

$ ruby app.rb

All you have to do for reloading is instead do this:

$ rerun 'ruby app.rb'

If you are for instance using rackup, instead do the following:

$ rerun 'rackup'

You get the idea.

If you still want in-process reloading, check out Sinatra::Reloader.

查看更多
登录 后发表回答