Fix asset-url: use Jinja global instead of nonexistent urls.asset_url

The IO handler and bridge both imported asset_url from
shared.infrastructure.urls, but it doesn't exist there — it's a Jinja
global defined in jinja_setup.py. Use current_app.jinja_env.globals.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 11:03:46 +00:00
parent 7eb158c79f
commit bec881acb3

View File

@@ -377,7 +377,10 @@ async def _io_asset_url(
args: list[Any], kwargs: dict[str, Any], ctx: RequestContext
) -> str:
"""``(asset-url "/img/logo.png")`` → versioned static URL."""
from shared.infrastructure.urls import asset_url
from quart import current_app
asset_url = current_app.jinja_env.globals.get("asset_url")
if asset_url is None:
raise RuntimeError("asset_url Jinja global not registered")
path = str(args[0]) if args else ""
return asset_url(path)
@@ -458,7 +461,10 @@ def _bridge_app_url(service, *path_parts):
return app_url(str(service), path)
def _bridge_asset_url(*path_parts):
from shared.infrastructure.urls import asset_url
from quart import current_app
asset_url = current_app.jinja_env.globals.get("asset_url")
if asset_url is None:
raise RuntimeError("asset_url Jinja global not registered")
path = str(path_parts[0]) if path_parts else ""
return asset_url(path)