I'm struggling to find the proper way to setup my flask routes when moving my app to being hosted in a subdirectory. I've read a bunch of great answers on this subject, most notably this answer on adding a prefix to all routes. However, I think my situation is slightly different. I want to ONLY prefix the URLs I generate with url_for
, not respond to those URLs. Is there a way to do this?
For example, assume my flask app is hosted at http://www.acme.com/tools/
. The main acme.com
domain is setup with a proxy pass to pass all requests from /tools/*
to my app. So, my app only sees requests like /
, /product_1/
even though the full URL is http://www.acme.com/tools/product_
/, etc. So, my app.route
rules can use /
as the base route. The problem is I use url_for
everywhere and I want the urls generated to be the full url like /tools/product_1
, not /product_1
. Is there a way to achieve this?
I've tried using blueprints but those will make the @app.route
and url_for
respond to /tools/xyz
. Is there a more simple solution to this issue or is this a non-standard way to handle this issue?