美文网首页
vue动态加载本地图片资源

vue动态加载本地图片资源

作者: 如意同学Try | 来源:发表于2018-08-31 08:40 被阅读0次

项目背景:项目的使用场景是面向信息安全相关部门,环境很有可能没有公网,局域网并不稳定,所以无法使用七牛等CDN保存图片资源。从而采用引入本地资源的方式

通常一张本地静态图片在vue中的写法是这样

<img src="@/assets/icon/demo.png">

但是,img标签如果在src路径中使用变量,会被编译为字符串,导致编译后的路径就是我们写上去的字符串形式,比如你在data中定义了一个变量src,然后在img标签中引用

//data中定义变量src
data() {
  return {
    src: 'demo' 
  }
}
//模版中的标签
<img src="@/assets/icon/" + src + ".png">

你会发现这个时候图片并没有被加载出来,浏览器中这张图片的地址直接显示'@/assets/icon/demo.png',也就是没有经过编译的步骤,直接将我们的输入当作字符串显示

在实际开发中,难免会需要动态生成图片路径的场景,那么如何正确显示图片呢?

1. 在当前页面全局import图片地址
//使用import引入
import pic1 from '@/assets/icon/demo1.png'
import pic2 from '@/assets/icon/demo2.png'
//在data中定义图片变量
data() {
  return {
    pic: {[
      name: 'demo1',
      src: pic1,
    ], [
      name: 'demo2',
      src: pic2,
    ]}
  }
}
//在HTML中使用
<img v-for="item in pic" :src="item.src" :alt="item.name"/>

图片可以正确显示,但需要图片名称和你引入的图片手动做好对应。作为一个程序员,当然不会使用这么low的操作了,所以就有了下文

2. 使用require

require可以在代码中使用,所以我们可以在获取数据的同时,为数对象增加一个src的属性

getData() {
  this.data.forEach(ele => {
    ele.src = require('@/assets/icon/' + ele.name + '.png');
  })
}

这就需要我们规范本地图片的命名了,确保能最有效地获取到正确的图片路径
使用require的时候也需要注意一点:require内容不能使用变量,如下写法会直接导致编译报错

let src = '@/assets/icon/demo.png';
require(src)
//报错“. is not a module”

amazing

相关文章

  • vue动态加载本地图片资源

    项目背景:项目的使用场景是面向信息安全相关部门,环境很有可能没有公网,局域网并不稳定,所以无法使用七牛等CDN保存...

  • vue 动态加载图片路径

    在用vue-cli脚手架生成的vue项目开发中,动态加载图片本地运行没有问题,但是打包后图片无法显示,图片路径40...

  • iOS - APP性能优化

    1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加载方式 本地图片加载常...

  • iOS APP性能优化简短总结

    1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加载方式 本地图片加载常...

  • iOS之APP性能优化

    1:应用启动时间 应用启动时,只加载启动相关的资源和必须在启动时加载的资源。 2:本地图片加载方式 本地图片加载常...

  • unity加载本地资源

    一.本地资源一般就是预制体,图片(jpg,png),音乐等文件。如何动态的加载我们需要的资源呢?有哪些方式。二.加...

  • Android通过文件管理器或图库无法打开图片,提示 “无法生成

    业务需求:通过FTP下载资源到本地,然后通过控件加载本地图片。 问题:无法正常加载本地资源,然后通过文件管理器打开...

  • 动态加载图片资源

    动态加载资源管理器的资源 就要在assets目录下 建立一个Resources文件夹 把要替换的源文件放到里面 然...

  • 加载自定义bundle中资源

    bundle 存储资源(图片、xib、storyboard) 加载bundle有很多方式 .a静态库加载 动态库加载方式

  • vue动态加载图片

    vue中加载图片出现了加载不成功的情况,多次测试发现了问题所在,首先对于静态图片要使用相对路径,并且地址要相当准确...

网友评论

      本文标题:vue动态加载本地图片资源

      本文链接:https://www.haomeiwen.com/subject/bbzxwftx.html