Henry
发布于 2025-11-30 / 9 阅读
0
0

Python - FastAPI - 使用 StaticFiles 提供静态文件

背景简介

Fast API 使用 StaticFiles 提供静态文件

前置信息

详细信息

文件架构

.
├── app/
├── static/
│   └── favicon.ico  # <-- 把你的图标文件放在这里

├── main.py
└── ...

代码

  • 更新 main.py
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from contextlib import asynccontextmanager

from app.core.logging import setup_logging
from app.api.v1 import health, redis


# 其他内容

app = FastAPI(
    title="FastAPI Example",
    description="Example FastAPI project with centralized logging",
    version="1.0.0",
    lifespan=lifespan,
)

# 挂载静态文件目录
# 当访问 /favicon.ico 时,FastAPI会自动去 static 目录下寻找 favicon.ico 文件
app.mount("/", StaticFiles(directory="static"), name="static")

# 其他内容


验证

  • 启动服务
uvicorn app.main:app --host 0.0.0.0 --port 8080

INFO:     Started server process [1290259]
INFO:     Waiting for application startup.
2025-10-29 11:31:37,570 - root - INFO - Logging configured with level 'DEBUG' and format '%(asctime)s - %(name)s - %(levelname)s - %(message)s'.
2025-10-29 11:31:37,570 - root - INFO - Application startup...
2025-10-29 11:31:37,571 - root - INFO - Creating and connecting real Redis client...
2025-10-29 11:31:37,576 - root - INFO - Real Redis client connected and initialized.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
  • 发送请求验证静态文件(根据自身项目情况访问即可)
2025-10-29 11:31:37,570 - root - INFO - Application startup...
2025-10-29 11:31:37,571 - root - INFO - Creating and connecting real Redis client...
2025-10-29 11:31:37,576 - root - INFO - Real Redis client connected and initialized.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
2025-10-29 11:32:53,142 - root - INFO - Personal Website Backend Development Environment: FastAPI service is healthy.
INFO:     127.0.0.1:37104 - "GET /api/v1/health/ HTTP/1.1" 200 OK
INFO:     127.0.0.1:37108 - "GET /favicon.ico HTTP/1.1" 200 OK

以上便是本文的全部内容,感谢您的阅读,如遇到任何问题,欢迎在评论区留言讨论。



评论