2017-04-19 151 views

回答

0

在任何WSGI應用程序中,environ['SCRIPT_NAME']在這裏非常重要。它定義了應用中所有網址的根路徑。完整路徑是environ['SCRIPT_NAME'] + environ['PATH_INFO']。假設你已經在你的應用程序中正確完成了任務(例如request.route_url(..)將使用此信息生成URL),那麼你可以簡單地通過指示它應該是別的東西來重新安裝其他應用程序(默認SCRIPT_NAME'')。

根據您部署應用程序的方式,您可以執行幾件事(如果它位於代理之後,則事情稍微複雜一點)。假設您只是使用一個由女服務員託管的簡單金字塔應用程序。您可以使用rutter [1]程序包移動您的應用程序,該程序包將匹配/myapp/*路徑,並通過相應的SCRIPT_NAMEmyapp)和PATH_INFO將所有請求發送到您的應用程序。

聲明性配置是最簡單的金字塔應用程序。只要安裝rutter,然後更新您的INI文件在/myapp前綴來安裝應用程序:

[app:foo] 
use = egg:myapp#main 

[composite:main] 
use = egg:rutter#urlmap 
/myapp = foo 

注意我改名app:mainapp:foo,因爲你只能有一個WSGI組件命名爲main,我們希望它是複合材料。

[1] http://rutter.readthedocs.io/en/latest/#declarative-configuration-using-paste-deploy-ini-files