# my_app.rb
load 'index.rb'
,并启动服务器这样
ruby my_app.rb
但它从来没有重装我的索引页所做的任何更改。
我错过了什么吗?
# my_app.rb
load 'index.rb'
,并启动服务器这样
ruby my_app.rb
但它从来没有重装我的索引页所做的任何更改。
我错过了什么吗?
"How do I make my Sinatra app reload on changes?"
首先,在处理代码在Ruby中重装是硬且具有 解决方案,为每一个场景的作品在技术上是不可能的。
这就是为什么我们建议您进行进程外重装。如果你开始你的末日应用这样
$ gem install rerun
现在:
$ ruby app.rb
所有你必须重新加载做的是不是
首先,你需要安装rerun,如果你还没有准备好这样做:
$ rerun 'ruby app.rb'
如果您是例如使用rackup,而不是 如下:
$重播 'rackup'
你的想法。
如果您仍然需要进行中重新加载,请查看
Sinatra::Reloader
。
创业板安装西纳特拉,reloader
require 'sinatra'
require 'sinatra/reloader'
注意:它会重新仅西纳特拉处理程序(和,也许有些西纳特拉服务器配置命令),但不能自定义文件,您必须手动重新加载。
嘿@Nakilon,我该如何去手动重新加载这样的文件?我正在做'require'./my-file“',但没有成功 – kristianlm 2011-09-30 21:23:49
@kristianlm,如果require已经被要求,'require'不会重新加载文件。你代替加载。 – Nakilon 2011-10-01 10:59:15
你是对的。但是我必须重新保存我的'server.rb',才能重新加载我的外部文件。它不会单独检查我的外部文件,所以每次我对外部文件进行更改时都必须重新保存我的'sever.rb'。 [霰弹枪](http://rubygems.org/gems/shotgun)似乎在这方面效果更好,但它似乎也重新加载数据库会话。 – kristianlm 2011-10-05 12:44:11
创业板安装西纳特拉,reloader
require 'sinatra/base'
require "sinatra/reloader"
class MyApp < Sinatra::Base
register Sinatra::Reloader
get '/' do
"Hello Testing1!"
end
end
您可能需要环境变量设置为开发和有条件地加载宝石。
当您运行与Passenger Standalone的应用程序,只需创建一个tmp/always_restart
文件:
$ touch tmp/always_restart.txt
见乘客documentation获取更多信息。
你是一位金神!谢谢。 – 2012-06-25 21:58:40
您可以使用rerun
宝石。
gem install rerun
rerun 'ruby app.rb'
,或者如果您使用rackup
rerun 'rackup'
你可以使用护架。从article at dblock.org解禁:
添加到您的Gemfile:
guard 'bundler' do
watch('Gemfile')
end
guard 'rack' do
watch('Gemfile.lock')
watch(%r{^(config|app|api)/.*})
end
最后,跑卫:
group :development do
gem "guard"
gem "guard-bundler"
gem "guard-rack"
end
然后,在你的项目与此内容的根目录中创建一个Guardfile
,如下所示:bundle exec guard
和rackup
每次都会重新加载。
在Windows上,我用我的restart gem此:
restart ruby my_app.rb
,或者与rackup:
restart rackup
更多信息,请参见here,希望你觉得它有用。
该文件指出,它不能在Windows上工作,我试过了,它加载了sinatra,但没有重新加载chenges – peter 2015-04-20 09:10:06
如果你只能改变你的模板西纳特拉总会重新描绘他们,如果你设置环境发展:
ruby app.rb -e development
真棒!感谢:D – jocap 2010-12-03 22:40:42
霰弹枪不适用于Windows,但 – 2013-02-13 14:27:16
霰弹枪需要一个最小的config.ru。如果你还没有,创建它,并将“require”./my_app'“(其中my_app.rb是你的ruby应用程序)放在它中,你将被设置。 – 2014-01-12 09:10:34