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

Vercel部署后图片无法显示问题求助

解决Flask+Vercel部署后图片无法显示的问题

针对你遇到的情况,从Flask配置、Vercel部署规则、仓库文件这几个方向排查:

  • 检查Flask静态文件引用方式
    Flask默认将静态资源放在static目录下,本地直接用相对路径可能正常,但部署到Vercel时,建议用Flask的url_for函数生成正确的静态资源路径,避免路径解析错误。示例:

    <!-- 不推荐硬编码相对路径 -->
    <img src="./static/img/photo.jpg">
    <!-- 推荐用url_for生成路径 -->
    <img src="{{ url_for('static', filename='img/photo.jpg') }}">
    

    确保你的Flask应用启动文件(比如app.py)没有修改默认的静态文件夹配置。

  • 配置Vercel的路由规则
    Vercel部署Flask时需要通过vercel.json明确静态文件的路由映射,否则可能无法正确访问静态资源。在项目根目录创建或修改vercel.json,添加以下配置:

    {
      "builds": [
        {
          "src": "app.py",
          "use": "@vercel/python"
        }
      ],
      "routes": [
        {
          "src": "/static/(.*)",
          "dest": "/static/$1"
        },
        {
          "src": "/(.*)",
          "dest": "app.py"
        }
      ]
    }
    

    这个配置会优先匹配静态文件请求,再将其他请求交给Flask处理。

  • 排查文件名大小写与仓库提交情况
    Vercel部署环境基于Linux,严格区分文件名大小写,而本地Windows/macOS可能不区分。检查HTML中引用的图片文件名大小写是否和Github仓库里的完全一致。
    同时确认图片文件没有被.gitignore规则排除,执行git status查看是否有未提交的图片文件,确保所有图片都已推送到Github仓库。

  • 避免使用本地绝对路径
    如果HTML中引用了本地绝对路径(如C:/projects/myapp/static/img.jpg),部署后肯定无法访问,必须改为基于项目静态文件夹的相对路径或url_for生成的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:02:09