Vue中img的src属性绑定与static文件夹实例


Posted in Javascript onMay 18, 2017

不少人在vue的开发中遇到这样一个问题: img的src属性绑定url变量,然而图片加载失败。

大部分的情况中,是开发者使用了错误的写法,例如:

<img src="{{ imgUrl }}"/>

这样写肯定是不对的,正确的写法应该使用v-bind:

<img v-bind:src="imgUrl"/>

不过,有时候即使使用了正确的语法,依旧无法显示图片,因为你的imgUrl使用了本地图片的路径。

例如,有下面一个文件结构:

Vue中img的src属性绑定与static文件夹实例

现在,我们要在App.vue里使用位于src/assets/目录下的logo.png图片,于是,我们设:

imgUrl = './assets/logo.png'

奇怪的事情出现了,图片加载失败。查看网页源代码,发现一个错误:

Vue中img的src属性绑定与static文件夹实例

看这个错误代码,我们发现,网页把根域名作为相对路径的根目录了,然而我们文件的路径是相对于项目文件的根目录的,当然就找不到了。

既然这样,那我们去找build后的dist文件夹。发现文件的结构是这样:

Vue中img的src属性绑定与static文件夹实例

是不是说只要把url改成./static/img/logo.png就可以了呢?依然是不行的。打开img文件夹我们可以发现,所有的文件名后都被添加上了一个随机字符串,原始的文件名已经无法对应了。

那么,到底应该怎么加载本地图片呢?回头看vue-cli的文件结构,发现其中有一个叫做static的文件夹,尝试将logo.png放入这个文件夹,然后修改imgUrl:

imgUrl = '/static/logo.png'

成功读取到了logo.png. 执行npm run build后查看dist文件,发现logo.png原封不动地放在了根目录下。

原来,之前的目录结构是有问题的,图片一类的静态文件,应该放在这个static文件夹下,这个文件夹下的文件(夹)会按照原本的结构放在网站根目录下。这时我们再去使用/static绝对路径,就可以访问这些静态文件了。

另外,如果说想在不调整目录结构的情况下读取本地图片,还有一个方法,那就是直接传入图片编码。即:

imgUrl = require('./assets/logo.png')

这样可以读到项目路径下的图片,但是要注意,因为CommonJS只允许使用字符串字面量,所以这种方法的灵活性依旧很差,所以还是推荐将静态文件放入static文件夹下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 Javascript
jQuery中filter(),not(),split()使用方法
Jul 06 Javascript
jquery Mobile入门—多页面切换示例学习
Jan 08 Javascript
JavaScript实现找出字符串中第一个不重复的字符
Sep 03 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
Nov 17 Javascript
angularjs指令中的compile与link函数详解
Dec 06 Javascript
javascript基础知识分享之类与函数化
Feb 13 Javascript
js贪吃蛇游戏实现思路和源码
Apr 14 Javascript
EasyUI为Numberbox添加blur事件的方法
Mar 05 Javascript
angular 未登录状态拦截路由跳转的方法
Oct 09 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 Javascript
jQuery zTree插件快速实现目录树
Aug 16 jQuery
JS验证全角与半角及相互转化的介绍
May 18 #Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 #Javascript
Javascript实现倒计时时差效果
May 18 #Javascript
vue-cli webpack 开发环境跨域详解
May 18 #Javascript
JavaScript实现简单的星星评分效果
May 18 #Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 #Javascript
Javascript实现信息滚动效果
May 18 #Javascript
You might like
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
ThinkPHP 3.2 版本升级了哪些内容
2015/03/05 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
JQuery切换显示的效果实例代码
2013/02/27 Javascript
jquery获取自定义属性(attr和prop)实例介绍
2013/04/21 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
35个Python编程小技巧
2014/04/01 Python
浅析Python中将单词首字母大写的capitalize()方法
2015/05/18 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
Python装饰器用法实例总结
2018/02/07 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
什么是聚集索引和非聚集索引
2012/01/17 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
小班开学寄语
2014/04/04 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
婚礼父母答谢词
2015/01/04 职场文书
电影圆明园观后感
2015/06/03 职场文书
导游词之西安骊山
2019/12/03 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
dubbo服务整合zipkin详解
2021/07/26 Java/Android
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python