使用 FastAPI 设置网站图标?

Chr*_*ris 27 python favicon fastapi

如何为FastAPI项目中的所有页面设置网站图标?

小智 46

只需FileResponse在 GET 请求中返回一个/favicon.ico

文件结构:

root
|-main.py
|-favicon.ico
Run Code Online (Sandbox Code Playgroud)

main.py

from fastapi import FastAPI
from fastapi.responses import FileResponse

app = FastAPI()
favicon_path = 'favicon.ico'

@app.get('/favicon.ico', include_in_schema=False)
async def favicon():
    return FileResponse(favicon_path)
Run Code Online (Sandbox Code Playgroud)

装饰器中包含的关键字include_in_schema=False隐藏了用于自动生成 API 文档的架构中的路径操作。

  • 您可能希望在装饰器中包含“include_in_schema=False”以从架构中隐藏此路由。 (7认同)
  • 因此,在 2021 年 12 月,我认为他们将 FileResponse 添加到主库中。我可以使用以下导入而不是从 starlette 导入来执行相同的操作。``` from fastapi.responses import FileResponse ``` (2认同)

Mar*_*goe 8

我遇到了同样的问题,并尝试了不同的事情,只有在我安装静态文件的文件夹后它才开始工作。

在main.py中

from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
Run Code Online (Sandbox Code Playgroud)

在 home.html 头部区域

<link id="favicon" rel="icon" type="image/x-icon" href="static/images/favicon.ico">
Run Code Online (Sandbox Code Playgroud)

我怀疑这与文件夹权限有关。