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 应用程序时,出现“Compiled Slug Size is too Large”错误
Django Admin 在生产 Heroku 中引发 500 错误