FastAPI使用常见问题
1. 运行提示 “GET /favicon.ico HTTP/1.1” 404 Not Found
原因
Favicon.ico是一个图标文件,通常用作网站的标识图标,显示在浏览器的地址栏、书签、标签页等位置。当你访问一个网站时,如果服务器上没有这个文件,浏览器会发送一个GET请求来获取这个文件。如果FastAPI应用没有处理这个请求,就会返回404 Not Found错误。
但这个也算不上bug,不影响使用,也可以忽略!只是会输出报错信息,有伤大雅!
解决
将图片favicon.ico文件放置在你的应用的静态文件目录下,并配置静态文件服务。
如:将favicon.ico放在:项目根目录下的 web/static/ 目录下
from fastapi.staticfiles import StaticFiles
from fastapi import FastAPI
# from starlette.responses import RedirectResponse
app = FastAPI()
# 自动读取本地web/static下的favicon.ico图片文件,并挂载到根路径/static,注意必须mount到根路径/static,否则报错!
app.mount("/static", StaticFiles(directory="web/static"), name="static")
@app.get("/favicon.ico")
async def favicon():
return {"file": "static/favicon.ico"} # or: return RedirectResponse("static/favicon.ico")