我一直在尝试在appengine上做一个简单的webapp,但是我遇到了处理程序的问题。 这是我的代码:
我的 app.yaml 文件:
application: test-app
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /web/.*
script: AppWebInterface.application
我的 AppWebInterface.py 文件:
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.write('Hello, World!')
application = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
当我运行dev_server并访问localhost:8080 / web时,我收到此错误:
The url "/web" does not match any handlers.
答案 0 :(得分:1)
我看到两个问题,一个掩盖了另一个。
首先,/web/.*
将匹配/web/
,/web/foo
,但不匹配/web
。有几种方法。一个是使用
- url: /web.*
但这也会匹配/webelos
。许多对你来说不是问题,因为下一步将抓住它。
接下来的问题是,在将/web/foo
传递给应用程序之后,没有将url模式映射到类的任何内容。 WSGIAppliction
设置为处理/
,但在app.yaml
中给定处理程序的情况下,没有此类网址会显示给应用。
如果您遇到困难,请尝试将app.yaml
中的处理程序更改为- url: /
。获得简单的工作,然后从那里添加处理程序。
答案 1 :(得分:0)
这是因为您的模式只匹配包含/web/
的网址(需要在/ weg之后设置'/')
修改模式并查看结果。
handlers:
- url: /web.*
script: AppWebInterface.application