基于vue 动态加载图片src的解决方法


Posted in Javascript onFebruary 05, 2018

好久没更博了,最近也不知道在忙啥,反正就是感觉挺忙的,在群里看到陆陆续续有刚入vue小伙伴问vue动态加载图片总是404的状况,这篇就简单的说明为什么会出现以及解决办法有哪些。

首先先说明下vue-cli的assets和static的两个文件的区别,因为这对你理解后面的解决办法会有所帮助

assets:在项目编译的过程中会被webpack处理解析为模块依赖,只支持相对路径的形式,如< img src=”./logo.png”>和background:url(./logo.png),”./logo.png”是相对资源路径,将有webpack解析为模块依赖

static:在这个目录下文件不会被webpack处理,简单就是说存放第三方文件的地方,不会被webpack解析。他会直接被复制到最终的打包目录(默认是dist/static)下。必须使用绝对路径引用这些文件,这是通过config.js文件中的build.assetsPublic和build.assertsSubDirectory链接来确定的。任何放在static/中文件需要以绝对路径的形式引用:/static[filename]

根据webpack的特性,总的来说就是static放不会变动的,第三档的文件,asserts放可能会变动的文件

问题来了,用js动态加载assets或者本文件的图片出现404的状态码

代码实例

<li v-for="(item,index) in images" :key="index">
<img :src="item.src"></li>
//js部分
data(){
 return {
 images:[{src:'./1.png'},{./2.png}]
 }
}

跑起来发现图片不显示,错误码为404,

原因:在webpack中会将图片图片来当做模块来用,因为是动态加载的,所以url-loader将无法解析图片地址,然后npm run dev 或者npm run build之后导致路径没有被加工【被webpack解析到的路径都会被解析为/static/img/[filename].png,完整地址为localhost:8080/static/img/[filename].png】

解决办法:

将图片作为模块加载进去,比如images:[{src:require(‘./1.png')},{src:require(‘./2.png')}]这样webpack就能将其解析。

②将图片放到static目录下,但必须写成绝对路径如images:[{src:”/static/1.png”},{src:”/static/2.png”}]这样图片也会显示出来,当然你也可以通过在webpack.base.config.js定义来缩短路径的书写长度。

当然你说当本地图片太多时,这样写岂不是很麻烦,那么其实我们是一这样简化操作的。

第一步:在static里面新建一个json文件夹

基于vue 动态加载图片src的解决方法

第二部:填写json文件,如图

基于vue 动态加载图片src的解决方法

第三部:将json引入响应的vue文件中,解析引用就行了

基于vue 动态加载图片src的解决方法

如有疑问,欢迎进行讨论。

以上这篇基于vue 动态加载图片src的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 禁用浏览器的后退功能的简单方法
Dec 10 Javascript
JS实现闪动的title消息提醒效果
Jun 20 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
有关json_decode乱码及NULL的问题
Oct 13 Javascript
实现JavaScript的组成----BOM和DOM详解
May 18 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
深入理解React中何时使用箭头函数
Aug 23 Javascript
JS库之ParticlesJS使用简介
Sep 12 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
Dec 09 Javascript
JS实现十分钟倒计时代码实例
Oct 18 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 Javascript
JS数组reduce()方法原理及使用技巧解析
Jul 14 Javascript
vue2.0 datepicker使用方法
Feb 04 #Javascript
js数组常用最重要的方法
Feb 04 #Javascript
jQuery Dom元素操作技巧
Feb 04 #jQuery
Vue的事件响应式进度条组件实例详解
Feb 04 #Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
Feb 04 #Javascript
Vue的土著指令和自定义指令实例详解
Feb 04 #Javascript
彻底理解js面向对象之继承
Feb 04 #Javascript
You might like
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
Python 网络编程起步(Socket发送消息)
2008/09/06 Python
代码详解django中数据库设置
2019/01/28 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
Python Merge函数原理及用法解析
2020/09/16 Python
python调用摄像头的示例代码
2020/09/28 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
毕业生个人的求职信范文
2013/12/03 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
应聘编辑自荐信范文
2014/03/12 职场文书
融资租赁计划书
2014/04/29 职场文书
镇创先争优活动总结
2014/08/28 职场文书
岳庙导游词
2015/02/04 职场文书
怎样写辞职信
2015/02/27 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
抢劫罪辩护词
2015/05/21 职场文书
小学四年级班务总结该怎么写?
2019/08/16 职场文书
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python