1

以下は私のapp.yamlファイルのコードです。localhost:8080/私が自分のindex.app荷物に正しく行けば。に行くとlocalhost:8080/index.html404エラーが発生します。たとえばlocalhost:8080/xxxx、他のページに移動すると、not_found.app正しく読み込まれます。/index\.htmlケースで404エラーが発生するのはなぜですか?

ありがとう!

application: myapp
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /index\.html
  script: index.app

- url: /
  script: index.app

- url: /assets
  static_dir: assets

- url: /*
  script: not_found.app

libraries:
- name: jinja2
  version: latest

index.pyからのコード

クラスMainPage(webapp2.RequestHandler):

def get(self):

テンプレート=jinja_environment.get_template('index.html')

self.response.out.write(template.render(template_values))

app = webapp2.WSGIApplication([('/'、MainPage)]、debug = True)

修正は太字のテキストにありました!

4

1 に答える 1

5

appの変数に。indexのハンドラーがないようですindex.html。例えば:

app = webapp2.WSGIApplication([('/', MainPage)])

アプリケーションがにルーティングさindexれると、定義されたハンドラーを調べて、に一致するものを見つけようとします/index.html。この例では、に移動すると/、そのハンドラーが定義されているため、正常に機能します。ただし、に移動するとindex.html、GAEはどのクラスを呼び出すかわからないため、404を返します。簡単なテストとして、

app = webapp2.WSGIApplication([
    ('/', MainPage),
    ('/index\.html', MainPage)
])

index.htmlこれは表面上は、の入力やその他の順列のハンドラーであるため、次のindex.ようなものを使用して、より広範なケースをキャプチャできます(内部的には、/必要に応じてを使用してルーティングできます)。

app = webapp2.WSGIApplication([
    ('/', MainPage),
    ('/index\..*', MainPage)
])
于 2012-11-25T21:25:38.730 に答える