vue动态显示图片

如果图片直接写死在html或者css里的,webpack会处理这个图片最终的地址(会用到url-loader)

所以如果在初始化的时候使用了相对路径,webpack会编译成两种形式,绝对路径或者base64字符串

实例:

 <img src="../assets/imgs/1.jpg" alt="">
image.png
绝对路径

图片以绝对路径(以/开头的路径就是绝对路径,/指根目录,根目录自爱本机就是指磁盘,在github上就是仓库的根目录)进行查找,图片的目录为/static/img,但是我们查看static目录下并没有找到img目录,那么路径如何来?

对项目运行npm run build,在dist目录下面可以找到该图片,所以, webpack打包后,会把静态资源放在dist目录下,我们的网站实际上是以dist目录作为根目录,并由此加载该目录下的资源。

当vue动态定义图片路径的时候,url-loader是无法探测到图片地址的。我们build后发现,图片不会打包输出到dist目录下(webpack是按需加载的)

如何解决:

1.访问绝对路径

把图片放到静态资源目录中(build会将static目录的we年或者文件夹放到dist目录中),并用/static绝对路径访问

 image:'/static/imgs/1.jpg'
2.使用require

如果想在不调整目录结构的情况下读取图片,还可以使用require
缺点:由于commonJs只允许使用字符串字面量,所以不利于组件化,灵活性差

image:require('../assets/imgs/2.jpg')
3.使用import
 import userPath from '../assets/user.png'
    export default{
        data(){
          return {
              src:userPath 
          }
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过...
    阳阳阳一堆阳阅读 8,610评论 0 5
  • webpack 是什么? 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(mo...
    IT老马阅读 8,691评论 2 27
  • 前言 本文主要从webpack4.x入手,会对平时常用的Webpack配置一一讲解,各个功能点都有对应的详细例子,...
    BetterChen阅读 5,971评论 0 3
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 13,857评论 0 21
  • 目录第1章 webpack简介 11.1 webpack是什么? 11.2 官网地址 21.3 为什么使用 web...
    lemonzoey阅读 5,697评论 0 1

友情链接更多精彩内容