diff --git a/app/main.py b/app/main.py index 95fca83..ad1e7f0 100644 --- a/app/main.py +++ b/app/main.py @@ -11,7 +11,7 @@ from pathlib import Path from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import HTMLResponse +from fastapi.responses import FileResponse, HTMLResponse from fastapi.staticfiles import StaticFiles from jinja2 import Environment, FileSystemLoader from sqlmodel import Session @@ -64,6 +64,16 @@ def index() -> HTMLResponse: return HTMLResponse(html) +@app.get("/sw.js", include_in_schema=False) +def service_worker() -> FileResponse: + """Service Worker(置于根路径以使 scope 覆盖全站)""" + return FileResponse( + STATIC_DIR / "sw.js", + media_type="application/javascript", + headers={"Service-Worker-Allowed": "/"}, + ) + + @app.get("/health") def health_check() -> dict: """健康检查(version 动态读取,便于验证自动更新)""" diff --git a/app/templates/index.html b/app/templates/index.html index 73d53a6..68d22e1 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -4,6 +4,12 @@