redirects
This commit is contained in:
@@ -1,12 +1,24 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from fastapi import FastAPI, Response, status
|
from fastapi import FastAPI, Response, status
|
||||||
|
from fastapi.responses import RedirectResponse
|
||||||
from fastapi.staticfiles import StaticFiles
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
|
||||||
|
|
||||||
def mount_docs_static(app: FastAPI, *, docs_route: str, site_dir: Path) -> None:
|
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."""
|
"""Mount the pre-built static docs site, or expose a clear missing-build response."""
|
||||||
normalized_route = docs_route.rstrip("/") or "/docs"
|
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():
|
if site_dir.is_dir():
|
||||||
app.mount(
|
app.mount(
|
||||||
|
|||||||
Reference in New Issue
Block a user