未找到GAE服务URL处理程序

时间:2018-03-04 01:17:15

标签: python google-app-engine app.yaml

我觉得我必须遗漏一些明显的东西,但我能找到的所有例子似乎都暗示这应该有效。

我的app.yaml文件:

runtime: python27
api_version: 1
threadsafe: true
service: myservice

handlers:
- url: /call
  script: main.app
- url: /.*
  script: main.app

当我访问此URL时,我得到了我期望的输出:

http://myservice-dot-myappname.appspot.com/

但是,这会产生404 Not Found:

http://myservice-dot-myappname.appspot.com/call

(注意:myservice和myappname都是隐藏真实姓名的。)

我错过了什么?

为了完整性,我有一个main.py,其中包含以下内容(没有main.app文件,但是Google创建此示例的示例也是这样设置的):

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('<?xml version="1.0" encoding="UTF-8"?>\n')
        self.response.write('<Response>\n')
        self.response.write('   <Say voice="woman" language="fr-FR">Chapeau!</Say>\n')
        self.response.write('</Response>\n')

app = webapp2.WSGIApplication([
    ('/', MainPage),
], debug=True)

1 个答案:

答案 0 :(得分:3)

问题在于main.py中定义的app。 “/ call”请求将在此处路由,但您没有定义将捕获它的路由。如果您想要全部捕获,请尝试:

app = webapp2.WSGIApplication([
    ('.*', MainPage),
], debug=True)

或者您可能希望单独捕获并处理呼叫请求,例如:

app = webapp2.WSGIApplication([
    ('/call', CallPage),
    ('.*', MainPage),
], debug=True)