Python Flask request.path在Bluemix上部署时丢失其第一个路径段

时间:2016-06-02 17:29:48

标签: python python-2.7 flask ibm-cloud cloudfoundry

我有一个部署在Bluemix上的Python Flask应用程序。当我在本地运行它时,一切都按预期工作。但是,当我在Bluemix上向应用程序发出请求时,我的请求的路径会丢失其第一个段,从而导致404

例如,如果我向/api/v1/items发出请求并在print request.path函数中执行app.before_request(),则会将/v1/items打印到控制台。

应用和环境细节:

  • 运行时:Python v2.7.10
  • Flask版本:v0.10.1
  • 平台:Bluemix Cloud Foundry

当然,我可以简单地发布每个API请求,并在路径前添加/blah,但这样会非常不优雅。

Flask如何剥离我的请求路径的第一部分?有没有人知道为什么会发生这种情况和/或潜在的解决方案?

1 个答案:

答案 0 :(得分:0)

问题最终是我从REST客户端(Postman)调用API并使用环境变量作为我的主机名。我在env var和请求URL中都有正斜杠,导致最终发送的请求URL在域后面有一个双斜杠。

因此,如果您向带有两个正斜杠的烧瓶应用程序发出API请求(即myapi.com//api/v1/path),则Python Web服务器将删除第一个路径段(api/情况)。