32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
# app/frontend.py
|
|
import os
|
|
from pathlib import Path
|
|
from fastapi import APIRouter, Request
|
|
from fastapi.templating import Jinja2Templates
|
|
from app.auth import require_login
|
|
|
|
router = APIRouter()
|
|
|
|
# Point templates_dir to "frontend/templates"
|
|
templates_dir = Path(__file__).parent.parent / "frontend" / "templates"
|
|
templates = Jinja2Templates(directory=str(templates_dir))
|
|
|
|
@router.get("/", include_in_schema=False)
|
|
async def serve_index(request: Request):
|
|
return templates.TemplateResponse("index.html", {"request": request})
|
|
|
|
@router.get("/about", include_in_schema=False)
|
|
async def serve_about(request: Request):
|
|
return templates.TemplateResponse("about.html", {"request": request})
|
|
|
|
@router.get("/upload", include_in_schema=False)
|
|
@require_login
|
|
async def serve_upload(request: Request):
|
|
return templates.TemplateResponse("upload.html", {"request": request})
|
|
|
|
@router.get("/favicon.ico", include_in_schema=False)
|
|
def favicon():
|
|
# If you have a real favicon in `frontend/static/favicon.ico`:
|
|
favicon_path = Path(__file__).parent.parent / "frontend" / "static" / "favicon.ico"
|
|
return str(favicon_path)
|