我正在写一个简单的美洲狮服务器, 每次请求我都会收到404。 如何配置' /'路径没有 Sinatra?
我只想抓住所有请求。
#config.ru
module Moon
class HelloWorldApp
def call(env)
[200, {}, 'Hello World']
end
def each(env=nil)
env
end
end
end
run Rack::Cascade.new Moon::HelloWorldApp.new
我这样运行:
$ puma config.ru -p 9595
使用此卷曲:
$ curl http://0.0.0.0:9595/test
得到404:
127.0.0.1 - - [07/Apr/2015:22:49:25 +0300] "GET /test HTTP/1.1" 404 - 0.0002
答案 0 :(得分:1)
Rack::Cascade
期望将应用程序的显式数组传递给构造函数(或者至少类似于响应每个应用程序并生成应用程序的枚举)。然后calls each
on this array获取每个应用(看起来你已经遇到了无方法错误并试图通过向你的应用添加each
方法来解决它。)
通过将run
行更改为:
run Rack::Cascade.new [Moon::HelloWorldApp.new]
您还需要更改返回数组的正文部分,它需要是responds to each
and yields String
s,最简单的方法是返回一个数组:
[200, {}, ['Hello World']]