详解Vue.js中引入图片路径的几种方式


Posted in Javascript onJune 17, 2019

vue --version 3.6.3

记录总结一下的Vue中引入图片路径的几种书写方式

vue中静态资源的引入机制

Vue.js关于静态资源的 官方文档

静态资源可以通过两种方式进行处理:

在 JavaScript 被导入或在 template/CSS 中通过相对路径(以 . 开头)被引用。这类引用会被 webpack 处理。

  • 诸如 <img src="..."> 、 background: url(...) 和 CSS @import 的资源
  • 例如, url(./image.png) 会被翻译为 require('./image.png')

放置在 public 目录下或通过绝对路径被引用。这类资源将会直接被拷贝,而不会经过 webpack 的处理,你需要通过绝对路径来引用它们。

  • 如果 URL 是一个绝对路径,例如 /images/foo.png ,它将会被保留不变。

目录结构:

vue-path/

----- public/

-------- images/

------------ XX.jpg

----- src/

-------- assets/

------------ images/

---------------- XX.jpg

-------- App.vue

...

引入示例

App.vue :

1、√

<img src="./assets/images/01.jpg" alt=""> // √
// 编译后:
<img src="/img/01.f0cfc21d.jpg" alt="">

常见的引入方式,路径是固定的字符串,图片会被webpack处理,文件若丢失会直接在编译时报错,生成的文件包含了哈希值

2、×

<img :src="'./assets/images/02.jpg'" alt=""> // ×
// 编译后:
<img src="./assets/images/02.jpg" alt="">

错误的引入方式,使用 :src 调用了 v-bind 指令处理其内容,相对路径不会被webpack的 file-loader 处理

3、√

<img :src="require('./assets/images/03.jpg')" alt=""> // √
<img :src="require('./assets/images/'+ this.imgName +'.jpg')" alt=""> // √
<img :src="img3" alt=""> // √
<script>
export default:{
 data(){
 return {
  imgName:'03.jpg',
  img3:require('./assets/images/03.jpg'),
 }
 },
}
</script>
// 编译后:
<img src="/img/03.ea62525c.jpg" alt="">

当路径的文件名需要拼接变量的时候,可使用 require() 引入,在 template 的 :src 或者 script 的 data computed 中都可以进行 require 引入或拼接

4、≈

<img src="/images/04.jpg" alt=""> // -
// 编译后:
<img src="/images/04.jpg" alt="">

用绝对路径引入时,路径读取的是public文件夹中的资源,任何放置在 public 文件夹的静态资源都会被简单的复制到编译后的目录中,而不经过 webpack特殊处理。

当你的应用被部署在一个域名的根路径上时,比如 http://www.abc.com/ ,此时这种引入方式可以正常显示

但是如果你的应用没有部署在域名的根部,那么你需要为你的 URL 配置 publicPath 前缀

publicPath 是部署应用包时的基本 URL,在 vue.config.js 中进行配置,详情参阅 官方文档

5、√

<img :src="this.publicPath + 'images/05.jpg'" alt=""> // √
// 编译后:
<img src="/foo/images/05.jpg" alt="">
<script>
export default:{
 data(){
 return {
  publicPath: process.env.BASE_URL,
 }
 },
}
</script>

vue.config.js中:

//vue.config.js
module.exports = {
 publicPath:'/foo/',
 ...
}

引入publicPath并且将其拼接在路径中,实现引入路径的动态变动

reference

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

Javascript 相关文章推荐
jQuery实现伪分页的方法分享
Feb 17 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 Javascript
基于构造函数的五种继承方法小结
Jul 27 Javascript
详解 vue.js用法和特性
Oct 15 Javascript
仿京东快报向上滚动的实例
Dec 13 Javascript
Layer弹出层动态获取数据的方法
Aug 20 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
Sep 26 Javascript
jQuery创建折叠式菜单
Jun 15 jQuery
JavaScript工具库之Lodash详解
Jun 15 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
Aug 08 Javascript
简单了解JavaScript作用域
Jul 31 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
Aug 07 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 #Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 #Javascript
详解vue微信网页授权最终解决方案
Jun 16 #Javascript
浅谈一种让小程序支持JSX语法的新思路
Jun 16 #Javascript
JavaScript 处理树数据结构的方法示例
Jun 16 #Javascript
JavaScript中的ES6 Proxy的具体使用
Jun 16 #Javascript
简谈创建React Component的几种方式
Jun 15 #Javascript
You might like
理解Javascript_13_执行模型详解
2010/10/20 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
JSON 数据格式介绍
2012/01/13 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
物业管理计划书
2014/01/10 职场文书
领导证婚人证婚词
2014/01/13 职场文书
总经理岗位职责范本
2014/02/02 职场文书
给学校的建议书
2014/03/12 职场文书
中学生寄语大全
2014/04/03 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
团拜会策划方案
2014/06/07 职场文书
运动会拉拉队口号
2014/06/09 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
思想工作总结范文
2015/08/12 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏