Mercurial > piecrust2
changeset 963:a90541509a41
admin: Fix the site preview by editing the WSGI environment.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 07 Oct 2017 12:30:49 -0700 |
parents | 96ea68c36a74 |
children | d65838abbd90 |
files | piecrust/admin/views/preview.py |
diffstat | 1 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/piecrust/admin/views/preview.py Sat Oct 07 12:17:29 2017 -0700 +++ b/piecrust/admin/views/preview.py Sat Oct 07 12:30:49 2017 -0700 @@ -1,4 +1,4 @@ -from flask import g, make_response +from flask import g, request, make_response from flask.ext.login import login_required from piecrust.serving.server import PieCrustServer from ..blueprint import foodtruck_bp @@ -15,6 +15,16 @@ def preview_page(url): site = g.site pcappfac = site.piecrust_factory - server = PieCrustServer(pcappfac, root_url=site.make_url('/preview/')) + root_url = request.script_root or '' + root_url += site.make_url('/preview/') + server = PieCrustServer(pcappfac, root_url=root_url) + + # Patch the WSGI environment for the underlying PieCrust server, + # because it doesn't generally handle stuff being under a different + # sub folder of the domain. + script_name = request.environ['SCRIPT_NAME'] + request.environ['SCRIPT_NAME'] = '' + request.environ['PATH_INFO'] = script_name + request.environ['PATH_INFO'] + return make_response(server)