这可能会让我看起来很跛脚但仍然 – 我找不到任何典型的机架应用程序结构(文件夹/文件,如public,config.ru)或config.ru文件内容的正式描述.
在Java世界中,Web应用程序及其组成部分(WEB-INF,Meta-INF web.xml)有明确的定义.
有没有一个Rack Web应用程序的规格?还是像Ruby本身那样含糊不清.
我预计在http://rack.rubyforge.org/网站上找到这个信息,但我不能.请指出正确的方向.
虽然我把这个问题作为回答,值得一提的是这个问题本身并不合理.应用程序结构由使用中的实际webserver / plugin组合驱动,如Apache / Passenger,而不是Rack.
解决方法
机架Web应用程序简单如下:
class HelloWorld def call(env) [200,{"Content-Type" => "text/plain"},["Hello world!"]] end end
并且像Rails,Sinatra等框架上构建的应用程序一样复杂.
关于结构,你可以创建你的.使用Rack,您可以按需要结构化的方式生成内容.使用Rack,您基本上是输出原始的HTTP内容.
“Introducing Rack”,“32 Rack Resources to Get You Started”和“Introduction to Rack middleware”是更好地了解机架的资源.
与结构有关,您可以自由组织文件来安装webapp.您可能在其他文件中有其他机架应用程序;所有你需要的是正确地要求这些文件.
一个Rack应用程序可以是任何Ruby类,它响应:env的调用消息,就像上面的HelloWorld应用程序一样.