1

我是GAE的新手。我现在在 GAE 上托管一个网站。我想把http://abc.com/about.html的网址改成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 并使用该行来强制执行哪些路由是安全的还是不安全的。

主文件

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