Skip to content

服务端推送

Starlette 包含对 HTTP/2 和 HTTP/3 服务器推送的支持,使得能够将资源推送到客户端以加快页面加载时间。

Request.send_push_promise

用于为资源启动服务器推送。如果服务器推送不可用,则此方法不执行任何操作。

签名: send_push_promise(path)

  • path - 表示资源路径的字符串。

    from starlette.applications import Starlette from starlette.responses import HTMLResponse from starlette.routing import Route, Mount from starlette.staticfiles import StaticFiles

    async def homepage(request): """ Homepage which uses server push to deliver the stylesheet. """ await request.send_push_promise("/static/style.css") return HTMLResponse( '' )

    routes = [ Route("/", endpoint=homepage), Mount("/static", StaticFiles(directory="static"), name="static") ]

    app = Starlette(routes=routes)