WSGIのすべては、現在のリクエストに関連しています。セットアップを適切に行う必要がありますenviron
(通常はWSGIサーバーによって)。
たとえば、Webアプリケーションは、の/projects
場合、サブパスにマウントされていることを認識しますrequest.environ['SCRIPT_NAME'] == '/projects'
。アプリケーションがマウントポイントに依存しないようにする場合は、でビューを提供するかのようにアプリケーションをコーディングするだけです/foo/bar
。/projects
次に、適切に変更できるミドルウェアを介してアプリケーションをマウントしますenviron
(mod_wsgiおよびその他のサーバーはこれを自動的に実行できるはずです)。これで、受信URLが/projects/foo/bar
とenviron['SCRIPT_NAME'] == '/projects'
でenviron['PATH_INFO'] == '/foo/bar'
あり、アプリが相対パスに焦点を合わせることができます。
Pyramidでは、これは、WSGIスタックにプレフィックスミドルウェアを追加するiniの追加のステップに要約されます。ミドルウェアは、のキーPATH_INFO
とSCRIPT_NAME
キーの変更を処理environ
します。
[app:myapp]
use = egg:myapp
# ...
[filter:proxy-prefix]
use = egg:PasteDeploy#prefix
prefix = /projects
[pipeline:main]
pipeline =
proxy-prefix
myapp