在问题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”而不是任何域。
答案 0 :(得分: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
文件,以便能够访问制作服务器。