图片不显示主因是src未解析为有效地址,需通过network面板查请求状态码、确认路径基准、避免file://协议、核对大小写及文件存在性。

图片不显示,90% 是 src 值没解析成有效地址——不是代码写错,而是浏览器压根没拿到图。别改 CSS 或重装浏览器,先确认请求发出去了没、发到哪去了、返回了什么。
看 Network 面板确认 404 还是 200
右键页面 → “检查” → 切到 Network 标签 → 刷新 → 筛选 img 或直接找 .jpg/.png 请求:
- 状态码是
404:路径错了,或文件根本没放对位置 - 状态码是
403:服务器拒绝访问(比如图片放在/src或/node_modules下) - 状态码是
200但图还是破的:可能是 MIME 类型错(服务器返回text/plain却声称是 PNG)、图片损坏、或跨域被拦(CORS 错误会出现在 Console 里) - 没看到任何图片请求:
src可能为空、是模板变量未渲染(如src="{{avatar}}")、或标签写成了<image></image>这种非法写法
路径写法必须匹配 HTML 文件位置
src 的解析基准永远是当前 HTML 文件所在目录,不是项目根目录,也不是 CSS 文件位置。常见翻车点:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- HTML 在
/pages/index.html,图片在/assets/logo.png→ 必须写src="../assets/logo.png",不能写src="/assets/logo.png"(那是根路径,只在网站部署到域名根目录时才对) - HTML 和图片同在
/下 →src="logo.png"可行,但更稳妥写src="./logo.png",明确“从本目录开始找” - VS Code 拖拽生成的路径带
file:///前缀 → 手动删掉,只留./images/icon.svg这类相对路径 - Windows 下用
\分隔路径 → 浏览器不认,一律改用/
本地双击打开 HTML 必须停用 file:// 协议
双击 HTML 文件走的是 file:// 协议,此时 / 指向磁盘根(如 C:/),./ 行为也不统一,Chrome/Edge 甚至会直接拦截图片请求。这不是 bug,是安全限制。
- Python 用户:终端进项目根目录,运行
python -m http.server 8000,然后访问http://localhost:8000/index.html - Node.js 用户:装
serve,运行npx serve -s - VS Code 用户:装 Live Server 插件,右键 HTML → “Open with Live Server”
- 别信“改浏览器设置显示图片”这种老方案——Edge/Chrome 已不再提供该开关,且它解决不了
file://下路径解析失效的根本问题
大小写、拼写、文件是否存在都得人工核对
开发时看着正常,上线就 404?Linux 服务器默认大小写敏感,而 Windows 不敏感:
- 文件实际叫
Logo.png,但src写了logo.png→ 本地 OK,线上 404 - 路径中多一个空格、少一个字母、扩展名写成
.jpeg而非.jpg→ 全部导致 404 - 在 Elements 面板里右键点击
src值,Chrome 会显示解析后的完整 URL,点一下就能跳转验证——这是比猜路径快十倍的办法 - 如果用构建工具(Vite/Webpack),确保图片已纳入资源处理流程;直接放
/public下的图要配/xxx.png,放/src/assets下的图要用import或new URL(..., import.meta.url),不能硬写相对路径
真正卡住人的从来不是语法,而是路径相对于谁、协议走哪条、文件到底在不在那里——三者缺一不可。每次改完 src,务必去 Network 面板看一眼真实请求地址和状态码,别凭感觉刷新。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










