1

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

2 回答 2

1

我看到两个问题,一个掩盖了另一个。

首先,/web/.*将匹配/web/, /web/foo,但不匹配/web。有几种方法。一是使用

- url: /web.*

但这也会匹配/webelos。许多这对你来说不是问题,因为下一步会抓住它。

下一个问题是,在传递/web/foo到应用程序之后,没有任何东西将该 url 模式映射到一个类。WSGIAppliction设置为处理,尽管没有这样的/URL 会到达给定处理程序的应用程序 in app.yaml

如果您无法开始,请尝试将处理程序更改app.yaml- url: /. 做一些简单的工作,然后从那里添加处理程序。

于 2013-10-13T18:19:28.590 回答
0

这是因为您的模式仅匹配包含的 url /web/(需要在 /weg 之后有一个 '/')

修改模式并查看结果。

handlers:
- url: /web.*
  script: AppWebInterface.application
于 2013-10-13T18:01:33.057 回答