from fastapi import FastAPI, Request, Response filenames = ["js/poseMaker.js"] contents = '\n'.join([f"" for x in filenames]) app = FastAPI() @app.middleware("http") async def insert_js(request: Request, call_next): path = request.scope['path'] # get the request route response = await call_next(request) if path == "/": response_body = "" async for chunk in response.body_iterator: response_body += chunk.decode() response_body = response_body.replace("", contents + "") del response.headers["content-length"] return Response( content=response_body, status_code=response.status_code, headers=dict(response.headers), media_type=response.media_type ) return response