网址“/ web”与任何处理程序都不匹配

时间:2013-10-13 17:42:16

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

我一直在尝试在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.

2 个答案:

答案 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