# 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