2011-11-29 25 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部分... –