Vue之图片路径绑定问题
Vue之图片路径绑定问题
问题1:服务端返回的2种路径图片路径区别
- ①服务端返回: /static/images/beian.png (不带域名)
- ②服务端返回:http://sosout.com/static/images/beian.png (全路径,带域名)
优点:
1、给他人引用带来了一定的难度,因为他们要手动添加域名。
2、服务器迁移,里面的链接还是指向正确的URL,因为URL会自动补全域名。
缺点:
1、不利于开发阶段使用,因为链接应该指向真正的域名而不是开发站点。
2、不适用后期图片资源分服务器。
第二种: http://sosout.com/static/images/beian.png
优点:
1、开发方便,后期也好维护
缺点:
1、服务端需要维护一份图片url的配置文件。
问题2:不需要图片的数据, 怎么过滤?
【Vue之图片路径绑定问题】如图, 服务端仅返回不带域名的图片路径, 需手动添加域名去获取图片
而, 有的数据本身就不需要图片, 则此时获取到的图片数据就是null
文章图片
文章图片
此时,图片路径就变成 “http://127.0.0.1:4000/imgs/zhuhu/null”
这个路径不存在, 当然找不到; 找不到自然就会 报错 , 如图:
文章图片
解决:
① 在前端将图片渲染到页面前, 先做判断, 过滤掉是null的 结果
三目判断:
若图片路径不为null, 则去拼接全路径,获取图片
若图片为null ,则将src属性的值设为空字符串, 即src="" , 即没有图片
:src="https://www.it610.com/article/task.image!=null?`${baseURL}${task.image}`:''
②同时为了不影响页面效果(设置有样式), 将得到结果时null的img元素隐藏
v-show="task.image!=null"
再次查看页面效果:
没有去寻找无用的路径了, 也就不报错了,ok~~
文章图片
PS : 若你移动端使用的是 mint-UI组件 ,倒还有另一种方法, 一举两得
很简单: 直接将之前
:src
绑定,变成v-lazy
绑定即可v-lazy="`${baseURL}${task.image}`"
即解决之前的报错问题, 又实现了图片懒加载 , perfect~~
推荐阅读
- 宽容谁
- 一个人的旅行,三亚
- 第6.2章(设置属性)
- 布丽吉特,人生绝对的赢家
- 家乡的那条小河
- 讲述,美丽聪明的海欧!
- PMSJ寻平面设计师之现代(Hyundai)
- 夜游宫|夜游宫 心语
- 增长黑客的海盗法则
- 画画吗()