Google app engine 如何使用Flask将子域添加到Google应用程序引擎,并在站点和子域中显示不同的内容?

Google app engine 如何使用Flask将子域添加到Google应用程序引擎,并在站点和子域中显示不同的内容?,google-app-engine,flask,Google App Engine,Flask,我们有一个使用谷歌应用引擎开发的网站。所以我们有裸域mysite.com(重定向到www.mysite.com)和子域www.mysite.com 现在我们想添加另一个子域user.mysite.com,因此我们将其添加到App Engine自定义域和注册器中,没有任何问题 但是我们在user.mysite.com上看到的是与www.mysite.com相同的网站副本(所有页面都是相同的,只是子域用户,而不是www.) 我们如何在user.mysite.com上显示其他页面(如Hello wor

我们有一个使用谷歌应用引擎开发的网站。所以我们有裸域mysite.com(重定向到www.mysite.com)和子域www.mysite.com

现在我们想添加另一个子域user.mysite.com,因此我们将其添加到App Engine自定义域和注册器中,没有任何问题

但是我们在user.mysite.com上看到的是与www.mysite.com相同的网站副本(所有页面都是相同的,只是子域用户,而不是www.)


我们如何在user.mysite.com上显示其他页面(如Hello world!),而不是在www.mysite.com上显示相同的页面?

您所询问的内容是内置在烧瓶中的,就像
蓝图一样:

这很好地解释了子域的
蓝图
设置:

对于一些简单的情况,您可以只测试
请求
。烧瓶也有内置的:

@app.before_request
def check_subdomain():
    '''
    This runs before all requests
    '''
    if "user." in request.environ.get('HTTP_HOST'):
        SOME_GLOBAL = 'user'
        return None

但是,听起来你想使用
蓝图
。这是一个非常优雅的解决方案。

一个可能的解决方案是部署dispatch.yaml文件,如中所述。通过这种方式,您可以根据URL中的主机名将请求路由到您的子域到特定的服务

对于您的具体情况,这可能是dispatch.yaml文件:

dispatch:
  # For www. subdomain.
  - url: "www.mysite.com/"
    service: [www-subdomain-frontend-service]

  # For user. subdomain.
  - url: "user.mysite.com/"
    service: [user-subdomain-frontend-service]