机架/ Sinatra方法不允许

时间:2013-12-21 11:11:40

标签: ruby sinatra rack

我正在使用Sinatra开发一个简单的Web应用程序,并使用rack作为中间件,因此有一个config.ru。 要运行该应用程序,我使用shotgun config.ru

当应用程序执行GET请求时,我没有问题。但我的应用有几个POST请求,当我通过POST方法提交表单时,我收到了这个奇怪的错误:

Method Not Allowed

以下是我的config.ru

的内容
require "rack"
require 'rack/contrib/try_static'
require File.expand_path("app", File.dirname(__FILE__))

use Rack::TryStatic, :root => File.join(App::SETTINGS.source, App::SETTINGS.site.config['destination']), :urls => %w[/]

run App

知道什么可以解决这个问题吗?

谢谢

2 个答案:

答案 0 :(得分:0)

以下内容不会回复帖子:

get '/hi' do
 "Hello World!"
end

你很可能需要这样做:

post '/hi' do
  # do post stuff
end

答案 1 :(得分:0)

我解决了这个问题。 这是rack的问题。

我替换了

use Rack::TryStatic, 
    :root => File.join(App::SETTINGS.source, App::SETTINGS.site.config['destination']), 
    :urls => %w[/]

使用:

use Rack::Static,
    :urls => ["/#{App::SETTINGS.site.config['destination']}"],
    :root => File.join(App::SETTINGS.source, App::SETTINGS.site.config['destination'])