哎?这列表里的图片怎么有些不见了

最近都是一些很简单的增删改查的小需求,没什么好特别记录的。不过今天测试同学发现了我负责开发的一个组件有一个很奇怪的bug:部分顶部 logo 图片不展示。

第一反应是"甩锅"(bushi),"后端接口肯定有些偷懒没造数据!"

于是我 F12 打开 network 看了下接口,后端是正常返回了图片的 oss 地址的。(坏了,这下是我的锅了)

但是为什么有些会展示,有些不会展示呢? 我又看了下接口里每个返回的 url :

json 复制代码
logoUrl: "upload/2024/2/2/xxxxxxxx/xx.jpg"  // 正常展示
logoUrl: "upload/2024/3/1/xxxxxxx/xx(1).jpg"  //不展示

观察 element 结构和代码,发现我在这里是复制其他文件已经拼接好的 oss 图片结构,其使用的不是 img 标签,而是通过 div 标签设置background-image属性为拼接的 url 来展示图片

奇怪的是列表里有一部分没有了background-image这个属性

既然有些图片可以展示,有些不可以,那么我拼接的方式应该是没问题的,应该是有些 url 格式比较"特殊",导致background-image看不懂这个 url。于是我仔细检查没有展示出的图片的 url,发现他们都有一个相同的特征:含有( )括号!

百度了一下,我才知道background-image属性当 url 有括号时是有问题的,背景图不会展示出来。

而它的解决方法是在 url 外再包一层''。即:

json 复制代码
background-image: url(logoUrl)    // 👎
background-image: url('logoUrl')  // 👍

于是,我将代码修改为:

图片便可以正常展示了。

其实,平时写死地址时都会加上''的,但是之前的开发是在内联样式中拼接的地址,导致没注意加上这个引号。而background-image又是可以处理这种不带括号的 url 的,之前的图片也没有带括号的地址,导致这个问题一直没有被发现。结果我这个偷懒倒霉蛋复制过来用给碰上了🤣。

相关推荐
醉城夜风~28 分钟前
CSS元素显示模式(display)
前端·css
AI大模型-小华1 小时前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
做前端的娜娜子3 小时前
同一链接实现 PC Web 与移动 H5 自适应
前端·掘金·金石计划
小帅不太帅4 小时前
架构没变、规模没变,DeepSeek V4 Flash 正式版凭什么暴涨 47 分?
前端·aigc·deepseek
jarvisuni4 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
卷福同学5 小时前
AI编程出海第二步:验证关键词能否做站
前端·人工智能·后端
先吃饱再说5 小时前
编写一个颜色选择器之后,我理解了 React 工程化的三层架构
react.js·前端框架·前端工程化
先吃饱再说5 小时前
别说你懂 useEffect:从底层机制到生命周期管理,这篇全讲透了
react.js·前端框架
赵庆明老师6 小时前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim