From 3f9a991b5219d2fe1f103fc6318d7f24067bebc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Sun, 27 Jul 2025 04:33:06 +0200 Subject: [PATCH] Use werkzeug middleware for prefix to fix the path of static files Closes #601 --- libretranslate/app.py | 15 +++++---------- libretranslate/main.py | 5 ++++- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/libretranslate/app.py b/libretranslate/app.py index 58907fc..7026cc1 100644 --- a/libretranslate/app.py +++ b/libretranslate/app.py @@ -189,8 +189,8 @@ def create_app(args): from libretranslate.language import load_languages - swagger_url = args.url_prefix + "/docs" # Swagger UI (w/o trailing '/') - api_url = args.url_prefix + "/spec" + swagger_url = "/docs" # Swagger UI (w/o trailing '/') + api_url = "/spec" bp = Blueprint('Main app', __name__) @@ -1270,10 +1270,8 @@ def create_app(args): if args.debug: app.config["TEMPLATES_AUTO_RELOAD"] = True - if args.url_prefix: - app.register_blueprint(bp, url_prefix=args.url_prefix) - else: - app.register_blueprint(bp) + + app.register_blueprint(bp) limiter.init_app(app) @@ -1302,9 +1300,6 @@ def create_app(args): # Call factory function to create our blueprint swaggerui_blueprint = get_swaggerui_blueprint(swagger_url, api_url) - if args.url_prefix: - app.register_blueprint(swaggerui_blueprint, url_prefix=swagger_url) - else: - app.register_blueprint(swaggerui_blueprint) + app.register_blueprint(swaggerui_blueprint) return app diff --git a/libretranslate/main.py b/libretranslate/main.py index 4a279c7..c8a8e8e 100644 --- a/libretranslate/main.py +++ b/libretranslate/main.py @@ -4,6 +4,7 @@ import sys from libretranslate.app import create_app from libretranslate.default_values import DEFAULT_ARGUMENTS as DEFARGS +from werkzeug.middleware.dispatcher import DispatcherMiddleware def get_args(): @@ -255,7 +256,9 @@ def get_args(): def main(): args = get_args() - app = create_app(args) + app = DispatcherMiddleware(None, { + args.url_prefix: create_app(args) + }) if '--wsgi' in sys.argv: return app