2012-03-20 65 views

回答

10

首先,最後一行應改爲

run Rack::Cascade.new [Foo, Bar] 

但你只能在一個Rackup文件使用。所以,第二,你需要用下面的內容創建一個名爲config.ru(Rackup文件):

require './app' 
run Rack::Cascade.new [Foo, Bar] 

和一個叫app.rb您的實際應用文件:

require 'sinatra/base' 

class Foo < Sinatra::Base 
    get('/foo') { 'foo' } 
end 

class Bar < Sinatra::Base 
    get('/bar') { 'bar' } 
end 

那麼你可以通過在命令行中鍵入

$ rackup 
>> Thin web server (v1.3.1 codename Triple Espresso) 
>> Maximum connections set to 1024 
>> Listening on 0.0.0.0:9292, CTRL+C to stop 

啓動服務器,打開第二個命令行窗口,然後測試您的應用程序:

$ curl 0.0.0.0:9292/foo 
foo% 
$ curl 0.0.0.0:9292/bar 
bar%  
+0

感謝它的幫助。我是Sinatra的新手。例如,「運行Rack :: Cascade [Foo,Bar]」,沒有「.new」。也許這是拼寫錯誤或以前版本的sinatra使用這種語法。 – user1136228 2012-03-21 08:17:55

+0

不客氣。當你只進行測試時,你也可以在config.ru中編寫所有的代碼,但我認爲這被認爲是不好的做法。 – 2012-03-21 08:20:25

+0

而且是。這是一個很好的做法,使模塊化sinatra應用程序,如rails應用程序結構(控制器,視圖,助手,庫,公用文件夾)? – user1136228 2012-03-21 08:23:15

相關問題