1

私はGAEの初心者です。現在、GAE で Web サイトをホストしています。http://abc.com/about.htmlの URL をhttp://abc.com/about/に変更したいのですが、 どうすればよいですか?ありがとう。

ここに私のmain.pyがあります:

import webapp2
from google.appengine.ext.webapp2 import template
from google.appengine.ext.webapp2 import util
import os

class MainHandler(webapp2.RequestHandler):
    def get(self):
        template_values = {}
        path = os.path.join(os.path.dirname(__file__), 'index.html')
        self.response.out.write(template.render(path, template_values))

class About(webapp2.RequestHandler):
    def get(self):
        self.response.our.write(template.render('about.html',None))

def main()
    application = webapp2.WSGIApplication([(
        '.', MainHandler),
        ('about', About),
        ])
    util.run_wsgi_app(application)

app = webapp2.WSGIApplication([('/', MainHandler)],
                              debug=True)

ここに私の app.yaml があります:

application: nienyiho-test
version: 1
runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app

- url: /about
  static_files: about.html
  upload: about.html

libraries:
- name: webapp2
  version: "2.5.1"
4

1 に答える 1

2

ルートを変更する必要があります。ルートを作成するコードは提供されませんでしたが、基本的に静的 HTML ファイルを提供する場合は、@AdamCrossland のコメントにあるように、app.yaml ファイルを使用してそれを行うことができます。

app.yaml ファイルは次のようになります。

application: your_app
version: 1
runtime: python27
api_version: 1
default_expiration: "1d"
threadsafe: True

- url: /about.html
  static_files: static/html/about.html
  upload: static/html/about.html
  secure: never

- url: /about
  script: main.app

- url: /.*
  script: main.app

@NickJohnsonがここで提案しているように、必要に応じて安全な行を削除できるように正規表現を使用することもできますが、私は一部のアプリでhttpsを使用し、その行を使用して安全なルートとそうでないルートを強制します。

main.py

import webapp2
from google.appengine.ext.webapp2 import template
from google.appengine.ext.webapp2 import util
import os

class MainHandler(webapp2.RequestHandler):
    def get(self):
        template_values = {}
        path = os.path.join(os.path.dirname(__file__), 'index.html')
        self.response.out.write(template.render(path, template_values))

class AboutHandler(webapp2.RequestHandler):
    def get(self):
        self.response.our.write(template.render('about.html',None)

#  Setup the Application & Routes
app = webapp2.WSGIApplication([
    webapp2.Route(r'/', MainHandler),
    webapp2.Route(r'/about', AboutHandler)
], debug=True)

編集: 20120610 - main.py を追加し、app.yaml を更新して、生成されたコンテンツをルーティングする方法を示しました。

于 2012-06-10T17:29:32.477 に答える