我觉得我必须遗漏一些明显的东西,但我能找到的所有例子似乎都暗示这应该有效。
我的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)
答案 0 :(得分:3)
问题在于main.py中定义的app
。 “/ call”请求将在此处路由,但您没有定义将捕获它的路由。如果您想要全部捕获,请尝试:
app = webapp2.WSGIApplication([
('.*', MainPage),
], debug=True)
或者您可能希望单独捕获并处理呼叫请求,例如:
app = webapp2.WSGIApplication([
('/call', CallPage),
('.*', MainPage),
], debug=True)