Revert "feat: mount static files for root router"

This commit is contained in:
Rewrite0
2023-06-15 21:44:58 +08:00
committed by GitHub
parent 17b31d6f4c
commit 6c9ae56453
3 changed files with 42 additions and 22 deletions

View File

@@ -37,6 +37,7 @@ RUN apk add --no-cache \
pip install --no-cache-dir -r requirements.txt && \
# Unzip WebUI \
unzip dist.zip && \
mv dist templates && \
# Add user
addgroup -S ab -g 911 && \
adduser -S ab -G ab -h /ab -s /bin/bash -u 911 && \

View File

@@ -1,12 +1,10 @@
import logging
import uvicorn
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse, RedirectResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from fastapi import FastAPI
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
@@ -27,27 +25,11 @@ 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 dist
mount_dist(app)
# mount router
# mount routers
app.include_router(web_router)
app.include_router(proxy_router)
app.include_router(v1, prefix="/api")

View File

@@ -0,0 +1,37 @@
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")