用途:在 Litestar 应用中按需提供普通静态资源、可下载文件或静态 HTML 站点。
主要能力:用 create_static_files_router() 挂载资源,指定显式路径与受控目录;设置内联还是附件下载、HTML 模式、路由名称、OpenAPI 可见性与路由元数据;为整个路由器配置 cache_control;可用 file_system= 接入非默认或远程文件系统;支持 URL 反转与模板引用。
使用方式:静态目录应与可写上传/用户内容目录分离;前缀建议使用 /static 或 /assets,除非有意用 HTML 模式占用 /;目录默认相对工作目录,需绝对路径时显式传入;send_as_attachment=True 仅用于有意下载;html_mode=True 仅当目录作为静态站点根;除非完全理解文件系统与暴露风险,否则禁用符号链接逃逸;缓存策略要与资源版本化匹配,长缓存需不可变或内容哈希文件名;用 name= 区分多个挂载,模板用 url_for/route_reverse 而非硬编码;公共资源可用 include_in_schema=False。
适用场景:普通 CSS、JS、字体、图片;需要不同响应头或访问控制的可下载产物;由 index.html 与 404.html 驱动的静态站点。远程文件系统、符号链接安全与测试模式需查阅 references/filesystems-security-and-testing.md 等参考文件。
限制与反模式:不要从项目根或过宽目录提供静态文件;不要将用户上传目录与可信构建资源走同一静态路由;无 HTML 模式意图时不要用 / 挂载;可变文件名不应配长缓存;有路由反转时不要硬编码 URL;不要把静态挂载当作需逐请求业务逻辑的授权下载端点。官方参考:https://docs.litestar.dev/latest/usage/static-files.html 与 https://docs.litestar.dev/latest/reference/static_files.html。