You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FastAPI部署Uvicorn时静态文件目录配置失败,index.html无法访问

解决FastAPI挂载静态HTML文件404的问题

核心问题排查与修复步骤

  1. 补全FastAPI实例创建
    你的代码中缺少app = FastAPI()这一行,这是创建FastAPI应用的基础,没有它所有路由和挂载操作都无法生效。

  2. 修正静态文件路径(关键)
    相对路径directory='static'依赖于你运行uvicorn命令的工作目录,很容易出错。改用绝对路径可以彻底解决这个问题:

    import os  # 新增导入
    
    # 在代码最开始创建app实例
    app = FastAPI()
    
    # 获取当前脚本所在目录的绝对路径
    current_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接static目录的绝对路径
    static_dir = os.path.join(current_dir, "static")
    
    # 先挂载静态文件,再定义API路由
    app.mount('/', StaticFiles(directory=static_dir, html=True), name="static")
    
  3. 确认项目目录结构
    确保你的项目结构符合以下规范(根目录为app):

    app/
    ├── main.py  # 你的代码文件
    └── static/
        └── index.html  # 要访问的HTML文件
    
  4. 检查文件名与大小写

    • 确保HTML文件确实是index.html(Linux/macOS系统大小写敏感,Index.html或INDEX.HTML都会导致404)
    • 确认static目录下没有嵌套子目录,否则访问路径需要对应(比如static/html/index.html需要访问/html/index.html)

额外注意事项

  • 挂载顺序:建议先挂载静态文件,再定义API路由,避免路由匹配优先级冲突(比如如果有@app.get('/')的路由,会优先于静态文件的index.html)
  • 你的view_income函数中cursor未初始化,需要先建立PostgreSQL连接并创建游标,否则API会报错,但这和静态文件问题无关。

内容的提问来源于stack exchange,提问作者Shreadr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:26:20