【问题标题】:Rails & Nginx Delete request - 405 Not AllowedRails 和 Nginx 删除请求 - 405 不允许
【发布时间】:2014-01-16 05:58:56
【问题描述】:

我只在生产服务器上收到此错误。当我执行“删除”请求方法时,它只会返回“405 Not Allowed”,并且应该返回一些 UJS。它在我的开发机器上运行良好。

以下是我在视图中使用的代码。这将返回一些 JS。

link_to("Delete", image, method: :delete, remote: true, data: {confirm: "Are you Sure?"})

底部的链接是我使用 nginx 配置的地方,因为我在那里使用 capistrano 任务。我用谷歌搜索看看有什么办法可以解决这个问题,但我发现很多东西都已经 3 岁多了,而且似乎什么也没做。例如:http://andre.arko.net/2011/06/30/rails-page-caching-nginx-and-restful-apis/

任何想法都会很棒,因为我现在迷路了。我的服务器配置是:Ubuntu 12.04、Unicorn、Nginx、Rails 4、Ruby 2。

https://github.com/kalys/capistrano-nginx-unicorn/blob/master/lib/generators/capistrano/nginx_unicorn/templates/nginx_conf.erb

【问题讨论】:

    标签: ruby-on-rails ruby nginx unicorn


    【解决方案1】:

    我建议通过删除 IF 语句并改为执行 301 重定向来清理 NGINX 文件。之后处理应用程序中的错误页面逻辑,如果要保留错误页面逻辑,请将其移入服务器块。这里以我的工作 nginx.conf 为例。

    https://gist.github.com/Austio/6399964

    【讨论】:

    • 我已经尝试删除 if 语句,但仍然得到相同的响应。你还有其他建议吗?我刚刚也将我的 nginx.conf 上传到 gist - gist.github.com/petermumford/8442888
    • 我发现问题location ~ ^/(assets|images|javascripts|stylesheets|swfs|system)/ { 应该是location ^~ /(assets|images|javascripts|stylesheets|swfs|system)/ { 我所做的只是更改~^。希望这是一个错字,或者可能有这样的原因? @Austio,你知道吗?
    • 好眼光,~^ 不是 nginx 位置语法选项,但 ^~ 是。 wiki.nginx.org/HttpCoreModule#location
    猜你喜欢
    • 2014-08-16
    • 2016-10-03
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多