2

Working with subdomain in google app engine问题中,建议使用以下代码。

applications = {
  'product.example.com': webapp.WSGIApplication([
    ('/', IndexHandler),
    ('/(.*)', ProductHandler)]),
  'user.example.com': webapp.WSGIApplication([
    ('/', IndexHandler),
    ('/(.*)', UserHandler)]),
}

def main():
  run_wsgi_app(applications[os.environ['HTTP_HOST']])

if __name__ == '__main__':
  main()

我的问题是如何在本地进行测试?当我在本地测试它时,主机是“localhost:8080”而不是任何域。

4

1 回答 1

2

在您的Hosts文件中创建两个新条目:

127.0.0.1       product.example.com
127.0.0.1       user.example.com

并在默认的 Http 端口 80 上运行本地 GAE 应用程序。

如果由于某种原因,您无法在端口 80 上运行 GAE,您可以尝试修改您的application.py以匹配本地端口号,如下所示:

if os.environ['SERVER_SOFTWARE'].startswith('Dev'):
    PORT=':8080'
else:
    PORT=''

applications = {
  'product.example.com%s' % PORT: webapp.WSGIApplication([
    ('/', IndexHandler),
    ('/(.*)', ProductHandler)]),
  'user.example.com%s' % PORT: webapp.WSGIApplication([
    ('/', IndexHandler),
    ('/(.*)', UserHandler)]),
}

或者甚至更好地修改这样的主要功能(感谢@Nick的评论):

def main():
  run_wsgi_app(applications[os.environ['HTTP_HOST'].split(':')[0]])

您应该准备好使用以下地址测试您的本地应用程序:
http://product.example.com:8080
http://user.example.com:8080

请记住切换回您的Hosts文件以便能够访问生产服务器。

于 2011-03-26T13:22:29.563 回答