pub async fn index(req: Request) -> Response
Serve the SPA: known assets by path, everything else falls back to the app shell (client-side routing is not used, so this also serves “/”).