redirects
This commit is contained in:
@@ -1,12 +1,24 @@
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import FastAPI, Response, status
|
||||
from fastapi.responses import RedirectResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
|
||||
|
||||
def mount_docs_static(app: FastAPI, *, docs_route: str, site_dir: Path) -> None:
|
||||
"""Mount the pre-built static docs site, or expose a clear missing-build response."""
|
||||
normalized_route = docs_route.rstrip("/") or "/docs"
|
||||
docs_root = f"{normalized_route}/"
|
||||
|
||||
async def redirect_to_docs_root() -> RedirectResponse:
|
||||
return RedirectResponse(url=docs_root, status_code=status.HTTP_307_TEMPORARY_REDIRECT)
|
||||
|
||||
app.add_api_route(
|
||||
normalized_route,
|
||||
redirect_to_docs_root,
|
||||
methods=["GET", "HEAD"],
|
||||
include_in_schema=False,
|
||||
)
|
||||
|
||||
if site_dir.is_dir():
|
||||
app.mount(
|
||||
|
||||
Reference in New Issue
Block a user