2011-11-29 48 views
12

這將可能使我看起來跛,但還是 - 我找不到任何一個典型的機架式應用結構(文件夾/文件,如大衆,config.ru)任何正式的說明,或config.ru文件內容。尋找機架應用程序結構和config.ru規格?

在Java世界中有一個Web應用程序,它由(WEB-INF,META-INF web.xml)中的部分明確的定義。

有沒有Rack web應用程序的規範?或者像Ruby本身那樣含糊不清。

我預計某處http://rack.rubyforge.org/現場發現的信息,但我不能。請指向正確的方向。


雖然我將這個問題標記爲答案,但值得一提的是,問題本身並不是很合理。應用程序結構由實際的webserver/plugin組合驅動,如Apache/Passenger,而不是Rack。

+0

您是否看到http://rack.rubyforge.org/doc/SPEC.html?此外,''config.ru'內容在['Rack :: Builder'](http://rack.rubyforge.org/doc/Rack/Builder.html)的上下文中進行評估。 – matt

+0

它確實看起來更像是一個API演練,而不是一個機架Web應用程序佈局的描述,將採取再看看 –

回答

2

機架Web應用程序是非常簡單:

class HelloWorld 
    def call(env) 
    [200, {"Content-Type" => "text/plain"}, ["Hello world!"]] 
    end 
end 

和複雜的應用程序內置在Rails,Sinatra等框架上,構建在Rack上。

與結構有關,您可以創建自己的結構。藉助Rack,您可以按照希望的方式生成內容。使用Rack,您基本上正在輸出原始HTTP內容。

Introducing Rack」,「32 Rack Resources to Get You Started」和「Introduction to Rack middleware」是理解Rack更好的資源。

用於修飾結構,你在整理文件,以適合web應用程序有自由。您可能有不同文件中的其他Rack應用程序;所有你需要的是正確地要求這些文件。

Rack應用程序可以是任何Ruby類,它可以響應:call消息,env,就像上面的HelloWorld應用程序一樣。

+0

如果我們用Java術語說話,我們可以說Rack僅定義了Servlet API,而不是Web應用程序的佈局(目錄結構)?也就是說,不存在定義「config.ru」必須相對於Web應用程序類(rb文件)的位置的情況? –

+0

本身沒有規範。但是'config.ru'是一個什麼啓動應用程序。如果它位於Web應用程序的home(或root)目錄中,這將是理想的 – iGbanam

1

你查過the Rack Wiki?它包含的教程,演示等一堆各個環節(但我不知道規格。)

+0

嗯,我去過那裏,但錯過了@ _ @ rackup如何-To_在某種程度上,這可能是我所需要的對於config.ru spec部分... –