mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-04-09 05:29:51 +08:00
feat: mount static files for root router
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
import logging
|
||||
|
||||
import uvicorn
|
||||
from fastapi import FastAPI
|
||||
from fastapi import FastAPI, Request
|
||||
from fastapi.responses import HTMLResponse, RedirectResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.templating import Jinja2Templates
|
||||
from module.api import v1
|
||||
from module.api.proxy import router as proxy_router
|
||||
from module.api.web import router as web_router
|
||||
from module.conf import settings, setup_logger
|
||||
from starlette.types import ASGIApp
|
||||
|
||||
@@ -25,11 +27,25 @@ uvicorn_logging_config = {
|
||||
}
|
||||
|
||||
|
||||
def mount_dist(app: ASGIApp):
|
||||
from module.conf import VERSION
|
||||
|
||||
if VERSION != "DEV_VERSION":
|
||||
app.mount("/", StaticFiles(directory="dist", html=True), name="dist")
|
||||
templates = Jinja2Templates(directory="dist")
|
||||
@app.get("/", response_class=HTMLResponse, tags=["html"])
|
||||
def index(request: Request):
|
||||
return templates.TemplateResponse("index.html", {"request": request})
|
||||
else:
|
||||
@app.get("/", status_code=302, tags=["html"])
|
||||
def index():
|
||||
return RedirectResponse("/docs")
|
||||
|
||||
def create_app() -> ASGIApp:
|
||||
app = FastAPI()
|
||||
|
||||
# mount routers
|
||||
app.include_router(web_router)
|
||||
# mount dist
|
||||
mount_dist(app)
|
||||
app.include_router(proxy_router)
|
||||
app.include_router(v1, prefix="/api")
|
||||
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
from fastapi import APIRouter, Request
|
||||
from fastapi.responses import FileResponse, HTMLResponse, RedirectResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
from module.conf import VERSION
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
if VERSION != "DEV_VERSION":
|
||||
router.mount("/assets", StaticFiles(directory="templates/assets"), name="assets")
|
||||
templates = Jinja2Templates(directory="templates")
|
||||
|
||||
# Resource
|
||||
@router.get("/favicon.svg", tags=["html"])
|
||||
def favicon():
|
||||
return FileResponse("templates/favicon.svg")
|
||||
|
||||
@router.get("/AutoBangumi.svg", tags=["html"])
|
||||
def logo():
|
||||
return FileResponse("templates/AutoBangumi.svg")
|
||||
|
||||
@router.get("/favicon-light.svg", tags=["html"])
|
||||
def favicon_light():
|
||||
return FileResponse("templates/favicon-light.svg")
|
||||
|
||||
# HTML Response
|
||||
@router.get("/{full_path:path}", response_class=HTMLResponse, tags=["html"])
|
||||
def index(request: Request):
|
||||
context = {"request": request}
|
||||
return templates.TemplateResponse("index.html", context)
|
||||
|
||||
else:
|
||||
|
||||
@router.get("/", status_code=302, tags=["html"])
|
||||
def index():
|
||||
return RedirectResponse("/docs")
|
||||
|
||||
Reference in New Issue
Block a user