图片加载失败主因是路径错误、跨域限制或文件异常;需检查404报错、CORS头、Content-Type及开发环境协议差异,优先用本地服务器测试并验证图片URL直连有效性。
浏览器控制台报 404 Not Found,基本可以断定是路径问题。HTML5 不区分大小写但文件系统区分,img/logo.PNG 和实际文件 logo.png 在 Linux 或 macOS 下就是两个不同文件。
的路径是相对于当前 HTML 文件位置,不是相对于服务器根目录/ 开头的路径从网站根目录算起,比如 src="/assets/images/icon.svg" 要求该文件真实存在于 http://yoursite.com/assets/images/icon.svg
file:// 协议,此时相对路径可能失效;务必用本地服务器(如 python3 -m http.server 8000)测试 标签缺少 src 或值为空字符串某些 CMS 或模板引擎动态拼接 src 时,变量未定义或为空,结果生成了 —— 浏览器会尝试加载当前页面 URL,造成意外重载或 404。
src 属性存在且值非空imgEl.src = data.url || "" 应改为 imgEl.src = data.url || "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="(透明占位)@@##@@防止挂掉的图留白占位
从其他域名(如 CDN、图床)加载图片时,若对方服务器没配 Access-Control-Allow-Origin, 绘图、getImageData() 或某些 CSS 背景图操作会失败,但 标签本身仍能显示——除非你用了 crossorigin 属性。
,而目标服务器没返回 CORS 头,图片就会加载失败且无提示Access-Control-Allow-Origin
cr
ossorigin;生产环境需联系图源方配置,或改用代理HTML5 支持 jpg、png、gif、webp、avif 等,但旧版浏览器对 webp 和 avif 支持有限;另外,图片文件本身损坏(如上传中断、压缩出错)也会静默失败。
Content-Type:PNG 应为 image/png,WebP 应为 image/webp;错误类型(如 text/plain)会导致部分浏览器拒绝渲染 + ,应提供 作为兜底file:// 协议跑 HTML 导致路径解析异常,以及服务器返回了 200 但 Content-Type 错误——这时候浏览器根本不会尝试解码,也不会报错。