浏览器按精确路径请求 background-image,路径错则 404;相对路径以 index.html 为基准,根路径 / 仅在本地服务器或上线后有效;需确保元素有宽高、未被隐藏或裁切;避免 Windows 反斜杠、大小写、空格及中文文件名问题;优先使用 .jpg/.png/.webp 格式并验证 MIME 类型。
background-image 路径是否真正可达浏览器不会“猜”图片在哪,它只按你写的路径去请求——路径错一点,就返回 404,背景直接空白。关键不是“看起来像对”,而是“请求地址能打开”。
index.html 所在目录,不是编辑器打开的位置,也不是服务器根目录./images/bg.jpg 表示 HTML 同级有个 images 文件夹;../assets/bg.jpg 表示往上退一级再进 assets
/ 开头(如 /images/bg.jpg)是网站根路径,仅在本地服务器(如 python3 -m http.server)或上线后有效;双击 HTML 用 file:// 协议打开时,这种写法会去系统根目录找,必失败200?点开看 Preview —— 是空白或报错?那路径就是错的background-image 不会撑开元素,如果容器没尺寸、没内容、或者被样式压没了,图就等于没画出来。
height: 100vh 或明确的 height: 500px,别依赖内容撑高overflow: hidden + 背景偏移过大导致裁切display: none、visibility: hidden 或 opacity: 0
border: 1px solid red 到该元素上,一眼看出它到底占不占空间开发时直接粘贴文件资源管理器路径(如 C:\Users\me\proj\bg.jpg)进 CSS,几乎必挂——CSS 把单个 \ 当转义符处理,\U 会被解析成 Unicode 字符。
url('C:\\Users\\me\\proj\\bg.jpg')
bg.JPG 和 bg.jpg 是两个文件;本地 Windows 可能不报错,一上线就 404bg-hero.jpg 这类纯英文+短横线命名不是所有图片都能当背景用,尤其在老旧环境或某些服务器配置下。
.jpg、.png、.webp;避开 .heic、.tiff、.bmp 等兼容性差的格式
background-image 里的路径,粘贴进新标签页):能正常显示?说明格式没问题;报错或乱码?说明服务器没返回正确的 Content-Type(应为 image/jpeg 等)