From 05788ef450cd63da4009cea1825323e10e572e43 Mon Sep 17 00:00:00 2001 From: Elrond Date: Mon, 3 Oct 2011 14:01:13 +0200 Subject: i592: Use full path in various places When running mediagoblin in a sub path on a web server, most things inside mediagoblin need the "inside path", but when generating URLs for the webbrowser, full paths are needed. urlgen and routes already do that. Some (mostly pagination and login) need the URL of the current page. They used request.path_info. But this is the "inside" path, not the full. So now there is request.full_path and its used in various places. --- mediagoblin/app.py | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'mediagoblin/app.py') diff --git a/mediagoblin/app.py b/mediagoblin/app.py index 0f25a4e5..f052d4a2 100644 --- a/mediagoblin/app.py +++ b/mediagoblin/app.py @@ -117,6 +117,17 @@ class MediaGoblinApp(object): path_info = request.path_info route_match = self.routing.match(path_info) + # By using fcgi, mediagoblin can run under a base path + # like /mediagoblin/. request.path_info contains the + # path inside mediagoblin. If the something needs the + # full path of the current page, that should include + # the basepath. + # Note: urlgen and routes are fine! + request.full_path = environ["SCRIPT_NAME"] + request.path_info + # python-routes uses SCRIPT_NAME. So let's use that too. + # The other option would be: + # request.full_path = environ["SCRIPT_URL"] + ## Attach utilities to the request object request.matchdict = route_match request.urlgen = routes.URLGenerator(self.routing, environ) -- cgit v1.2.3