簡體   English   中英

為子域配置GAE應用程序app.yaml

[英]Configure GAE application app.yaml for subdomains

我在GAE上有一些關於我的域名的子域名。 例如,它們是blog.mysite.com,projects.mysite.com和docs.mysite.com。 現在配置它們都在main.py使用這些設置進行main.py

def main():
    applications = {
        'blog.mysite.com': webapp.WSGIApplication([('/', BlogHandler)]),
        'projects.mysite.com': webapp.WSGIApplication([('/', ProjectsHandler)]),
        'docs.mysite.com': webapp.WSGIApplication([('/', DocsHandler)]),
    }
    util.run_wsgi_app(applications[os.environ['HTTP_HOST']])

如何將這些子應用程序分開以便由不同的模塊處理,所以我會有像blog.pyprojects.pydocs.py這樣的東西? 謝謝!

這不是您問題的答案,但您可能需要查看webapp2 它是谷歌網絡應用程序的直接替代品,增加了一些非常有用的功能,包括可以按域路由的新路由系統。

查看routes.py文件以獲取示例。 你想要DomainRoute

    SUBDOMAIN_RE = '^([^.]+)\.app-id\.appspot\.com$'

    app = WSGIApplication([
        DomainRoute(SUBDOMAIN_RE, [
            Route('/foo', 'FooHandler', 'subdomain-thing'),
        ]),
        Route('/bar', 'BarHandler', 'normal-thing'),
    ])

尼克約翰遜一段時間寫了一篇關於webapp2的博客文章

可能最簡單的方法是導入適當的模塊並調用其main()函數,並在單獨的模塊中而不是在main.py中完成所有WSGI應用程序的創建。 (我自己的微框架在WSGI應用程序本身中完成了所有這些路由,這有點難看,我正在重新考慮我的選擇,堅持基本上擴展的webapp樣式路由。)

你的標題提到了app.yaml; 你想要配置所有的請求去main.py並在那里進行調度,因為當前的運行時根本不允許你在app.yaml中進行主機映射(雖然有一個未解決的問題要求你可能明星)。 遺憾的是,您可以選擇不使用靜態處理程序或在所有子域上使用相同的靜態內容URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM