背景简介
Fast API 使用 StaticFiles 提供静态文件
前置信息
- Python 3.11.13 【Conda - 创建 Python 环境】
详细信息
文件架构
.
├── 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
以上便是本文的全部内容,感谢您的阅读,如遇到任何问题,欢迎在评论区留言讨论。