Vercel 部署时图片无法显示,通常是因为静态资源未按其约定目录结构存放;将图片统一放入 public 文件夹,并在 HTML 中使用根路径(如 /image.png)引用,即可解决。
Vercel 部署时图片无法显示,通常是因为静态资源未按其约定目录结构存放;将图片统一放入 `public` 文件夹,并在 HTML 中使用根路径(如 `/image.png`)引用,即可解决。
vercel 对静态资源有明确的目录规范:所有前端静态文件(如图片、css、js、字体等)必须放在项目根目录下的 public 文件夹中,vercel 会自动将其映射到站点根路径 / 下。这意味着你不能将图片放在 static/、assets/ 或其他自定义目录下——即使本地 flask 开发服务器能正常访问,vercel 也不会识别这些路径。
✅ 正确做法:
<!-- ✅ 正确:Vercel 会从 / 路径服务 public/ 下的文件 --><img src="/logo.png" alt="Logo"><img src="/images/photo.jpg" alt="Photo"> <!-- 若 public/images/photo.jpg -->
❌ 常见错误:
<!-- ❌ 错误:Vercel 不识别 public/ 前缀,且无 public 目录映射规则 --><img src="public/logo.png"><!-- ❌ 错误:相对路径在单页应用或路由变化时易失效 --><img src="./assets/logo.png"><!-- ❌ 错误:Flask 的 static 目录对 Vercel 无效(Vercel 不运行 Flask 后端) --><img src="{{ url_for('static', filename='logo.png') }}">
⚠️ 重要注意事项:
总结:Vercel 的静态资源服务机制与本地开发服务器(如 Flask 的 static)不同,public 是唯一被自动托管的静态资源入口目录。统一归置 + 根路径引用,是解决图片不显示最根本、最可靠的方式。