From c069b1f5ff427975b374846be8a8a81fe33fd2ee Mon Sep 17 00:00:00 2001 From: "Junv (via Hermes)" Date: Mon, 13 Jul 2026 10:10:57 +1000 Subject: [PATCH] demo-service: fix .draft/.bak HTML files downloaded instead of rendered The site_content endpoint only checked for .html suffix to render inline. Hidden HTML fallbacks (.index.html.draft, .index.html.bak) have .draft or .bak suffixes, so they fell through to FileResponse which triggered browser download instead of rendering. Fix: also check for .draft and .bak suffixes. --- home-apps/demo-service/service.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/home-apps/demo-service/service.py b/home-apps/demo-service/service.py index 7a09f43..d366306 100644 --- a/home-apps/demo-service/service.py +++ b/home-apps/demo-service/service.py @@ -175,7 +175,8 @@ async def site_content(path: str = "", request: Request = None): resp.headers["Cache-Control"] = "no-store" return resp # HTML files render inline; others (CSS, JS, images) are served as files - if target.suffix == ".html": + # .draft and .bak are hidden HTML fallbacks (e.g. .index.html.draft) + if target.suffix == ".html" or target.suffix in (".draft", ".bak"): return HTMLResponse(target.read_text()) resp = FileResponse(target) resp.headers["Content-Disposition"] = "inline"