fix: 静态资源no-cache头——浏览器启发式缓存导致widget.js修复不生效(线上事件)
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
+11
@@ -58,6 +58,17 @@ app.include_router(chat_rest_router)
|
|||||||
app.mount("/static", StaticFiles(directory=str(STATIC_DIR)), name="static")
|
app.mount("/static", StaticFiles(directory=str(STATIC_DIR)), name="static")
|
||||||
|
|
||||||
|
|
||||||
|
@app.middleware("http")
|
||||||
|
async def static_no_cache(request, call_next):
|
||||||
|
"""静态资源协商缓存(2026-09-30 线上事件): 无 Cache-Control 时浏览器对
|
||||||
|
widget.js 走启发式缓存,修复部署后用户端仍跑旧脚本。no-cache=每次用
|
||||||
|
etag 轻量协商,有更新即时生效,未变则 304 几乎零开销。"""
|
||||||
|
resp = await call_next(request)
|
||||||
|
if request.url.path.startswith("/static/"):
|
||||||
|
resp.headers["Cache-Control"] = "no-cache"
|
||||||
|
return resp
|
||||||
|
|
||||||
|
|
||||||
@app.get("/")
|
@app.get("/")
|
||||||
async def index():
|
async def index():
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse
|
||||||
|
|||||||
Reference in New Issue
Block a user