未找到 GAE 服务 URL 处理程序
GAE service URL handlers not found
我觉得我一定遗漏了一些明显的东西,但我能找到的所有示例似乎都表明这应该有效。
我的 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)
问题出在 main.py 中定义的 app
。对“/call”的请求将路由到此处,但您没有定义可捕获它的路由。如果您想一网打尽,请尝试:
app = webapp2.WSGIApplication([
('.*', MainPage),
], debug=True)
或者您可能希望单独捕获和处理调用请求,例如:
app = webapp2.WSGIApplication([
('/call', CallPage),
('.*', MainPage),
], debug=True)
我觉得我一定遗漏了一些明显的东西,但我能找到的所有示例似乎都表明这应该有效。
我的 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)
问题出在 main.py 中定义的 app
。对“/call”的请求将路由到此处,但您没有定义可捕获它的路由。如果您想一网打尽,请尝试:
app = webapp2.WSGIApplication([
('.*', MainPage),
], debug=True)
或者您可能希望单独捕获和处理调用请求,例如:
app = webapp2.WSGIApplication([
('/call', CallPage),
('.*', MainPage),
], debug=True)