fix: serve slides assets in app
This commit is contained in:
@@ -9,5 +9,8 @@ __pycache__/
|
|||||||
.ruff_cache/
|
.ruff_cache/
|
||||||
.uvicorn.pid
|
.uvicorn.pid
|
||||||
|
|
||||||
docs/
|
docs/images/
|
||||||
|
docs/screenshots/
|
||||||
|
docs/*.pdf
|
||||||
|
docs/presentation.md
|
||||||
README.md
|
README.md
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ RUN pip install --no-cache-dir --upgrade pip setuptools wheel -i https://package
|
|||||||
&& pip install --no-cache-dir -r requirements.txt -i https://package-mirror.liara.ir/repository/pypi/simple
|
&& pip install --no-cache-dir -r requirements.txt -i https://package-mirror.liara.ir/repository/pypi/simple
|
||||||
|
|
||||||
COPY app ./app
|
COPY app ./app
|
||||||
|
COPY docs/slides ./docs/slides
|
||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
|
|||||||
14
app/main.py
14
app/main.py
@@ -1,7 +1,7 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse, RedirectResponse
|
||||||
from fastapi.staticfiles import StaticFiles
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
|
||||||
from app.websocket.chat import router as chat_router
|
from app.websocket.chat import router as chat_router
|
||||||
@@ -9,6 +9,7 @@ from app.websocket.manager import manager
|
|||||||
|
|
||||||
BASE_DIR = Path(__file__).resolve().parent
|
BASE_DIR = Path(__file__).resolve().parent
|
||||||
STATIC_DIR = BASE_DIR / "static"
|
STATIC_DIR = BASE_DIR / "static"
|
||||||
|
SLIDES_DIR = BASE_DIR.parent / "docs" / "slides"
|
||||||
|
|
||||||
app = FastAPI(title="Simple WebSocket Chatroom")
|
app = FastAPI(title="Simple WebSocket Chatroom")
|
||||||
|
|
||||||
@@ -20,6 +21,17 @@ app.include_router(chat_router)
|
|||||||
app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static")
|
app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static")
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/slides", include_in_schema=False)
|
||||||
|
async def slides_redirect():
|
||||||
|
"""Redirect to the static slides directory so relative asset paths work."""
|
||||||
|
return RedirectResponse(url="/slides/")
|
||||||
|
|
||||||
|
|
||||||
|
# Serves the presentation and its relative assets.
|
||||||
|
# This keeps docs/slides/index.html openable directly from the file system too.
|
||||||
|
app.mount("/slides", StaticFiles(directory=SLIDES_DIR, html=True), name="slides")
|
||||||
|
|
||||||
|
|
||||||
@app.get("/")
|
@app.get("/")
|
||||||
async def home():
|
async def home():
|
||||||
"""Serve the chatroom GUI."""
|
"""Serve the chatroom GUI."""
|
||||||
|
|||||||
Reference in New Issue
Block a user