Vue之图片路径绑定问题

Vue之图片路径绑定问题 问题1:服务端返回的2种路径图片路径区别

  • ①服务端返回: /static/images/beian.png (不带域名)
  • ②服务端返回:http://sosout.com/static/images/beian.png (全路径,带域名)
第一种: /static/images/beian.png
优点:
1、给他人引用带来了一定的难度,因为他们要手动添加域名。
2、服务器迁移,里面的链接还是指向正确的URL,因为URL会自动补全域名。
缺点:
1、不利于开发阶段使用,因为链接应该指向真正的域名而不是开发站点。
2、不适用后期图片资源分服务器。
第二种: http://sosout.com/static/images/beian.png
优点:
1、开发方便,后期也好维护
缺点:
1、服务端需要维护一份图片url的配置文件。
问题2:不需要图片的数据, 怎么过滤?
【Vue之图片路径绑定问题】如图, 服务端仅返回不带域名的图片路径, 需手动添加域名去获取图片
而, 有的数据本身就不需要图片, 则此时获取到的图片数据就是null
Vue之图片路径绑定问题
文章图片

Vue之图片路径绑定问题
文章图片

此时,图片路径就变成 “http://127.0.0.1:4000/imgs/zhuhu/null”
这个路径不存在, 当然找不到; 找不到自然就会 报错 , 如图:
Vue之图片路径绑定问题
文章图片

解决:
① 在前端将图片渲染到页面前, 先做判断, 过滤掉是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~~
Vue之图片路径绑定问题
文章图片

PS : 若你移动端使用的是 mint-UI组件 ,倒还有另一种方法, 一举两得
很简单: 直接将之前:src绑定,变成v-lazy绑定即可
v-lazy="`${baseURL}${task.image}`"
即解决之前的报错问题, 又实现了图片懒加载 , perfect~~

    推荐阅读