使用nginx,passenger和Rails启用DELETE方法

时间:2015-03-13 16:30:23

标签: ruby-on-rails nginx passenger

我尝试使用passenger和nginx部署rails应用程序。 一切正常,但是当我想发送像这样的 DELETE 请求时,例如:

<%= link_to "Sign out", sign_out_path, method: :delete %>

在开发中,它运行良好,但在使用nginx生产时,它正在执行 GET 请求。所以逻辑上我得到这个错误:

ActionController::RoutingError (No route matches [GET] "/sign_out")

我已经读过nginx需要使用http_dav_module进行编译才能使用DELETE方法。

我做了它并在nginx配置文件中添加了模块,如下所示:

server {
  listen       8080;

  server_name  framework1.local.42.fr;
  passenger_enabled   on;

  location / {

    root          /rails/Framework00/public
    dav_methods   PUT DELETE;
    dav_access    group:rw  all:r;
  }

但是我得到同样的东西,DELETE方法不起作用。

我知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

之所以发生这种情况,是因为生产中有js错误。应该发送DELETE请求的JavaScript不起作用。