Heroku 和 Django 出现 405 错误

Posted

技术标签:

【中文标题】Heroku 和 Django 出现 405 错误【英文标题】:Heroku and Django with 405 error 【发布时间】:2012-04-21 15:05:50 【问题描述】:

我正在尝试将我的 django 项目从 apache 设置转移到 heroku。在这一点上,除了我在使用 PATCH Http 方法(我与 django-tastypie 结合使用)时遇到的问题外,一切似乎都运行良好。

我有一个允许这种方法的中间件,它可以在我以前的 apache 服务器上运行。现在我得到的只是 405 (METHOD_NOT_ALLOWED) 错误。常见的 HTTP 方法仍然有效(GET、POST、DELETE、POST)。我还读到 nginx 默认不支持 OPTIONS(可能还有 PATCH 请求?),并且必须进行一些配置。根据我的阅读,nginx 为 OPTIONS 方法请求返回了类似的 405 错误。我也很确定 heroku 使用的是 nginx 前端,所以这可能是问题所在。

这引出了我的下一个问题:我不知道如何向其中添加我自己的标题,因为这一切都由 heroku 控制。有谁知道确切的问题是什么?除了放弃 PATCH 方法(这让事情变得更方便)之外,还有什么方法可以让 PATCH 方法在 heroku 上工作?

【问题讨论】:

【参考方案1】:

Heroku 目前不支持补丁。这不是由于 nginx 问题,而是由于路由层中的问题。这是 Heroku 目前正在做的事情,但没有可用的 ETA。此外,您无法添加自定义标题,因为这些标题是由您控制的。

【讨论】:

我尝试使用 Heroku 创建此支持票证,但他们的支持系统回复说“我们很抱歉,但出了点问题。”所以我会把它贴在这里。 Heroku 支持,HTTP PATCH 请求在我的本地开发实例中工作,但在我的 Heroku 暂存实例上失败。您能否确认 Heroku 可以或不支持 HTTP PATCH 请求?我从四月发现了这个 Stack Overflow (SO) 问题:***.com/questions/10069871/… 这表明这是 Heroku 路由层的限制。我在 Heroku 文档中没有提到它。 SO问题还表明自定义标头不适用于Heroku,但我使用它们没有问题。

以上是关于Heroku 和 Django 出现 405 错误的主要内容,如果未能解决你的问题,请参考以下文章

heroku中的django应用程序出现工作超时错误

我想在 Heroku 上部署一个 Django 应用程序,但出现错误

当我当时在 Heroku 中部署 django 应用程序时,出现“Compiled Slug Size is too Large”错误

Django Admin 在生产 Heroku 中引发 500 错误

Django 1.8 UpdateView 生成 405 错误和空白模板

部署Django+React到Heroku - 未捕获的语法错误。意外的标记'<'