详解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 相关文章推荐
JS JavaScript获取Url参数,src属性参数
Mar 09 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
Dec 26 Javascript
THREE.JS入门教程(2)着色器-上
Jan 24 Javascript
javascript作用域和闭包使用详解
Apr 25 Javascript
简单的jQuery入门指引
Jul 28 Javascript
js基础之DOM中document对象的常用属性方法详解
Oct 28 Javascript
实例讲解Vue.js中router传参
Apr 22 Javascript
ES6之模版字符串的具体使用
May 17 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
解决layer弹出层中表单不起作用的问题
Sep 09 Javascript
Vue表单控件数据绑定方法详解
Feb 05 Javascript
js实现数字跳动到指定数字
Aug 25 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
PHP自动重命名文件实现方法
2014/11/04 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
浅谈php7的重大新特性
2015/10/23 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
Vue中keep-alive组件作用详解
2020/02/04 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
详解python配置虚拟环境
2019/04/08 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
夏季奶茶店创业计划书
2014/01/16 职场文书
文艺晚会策划方案
2014/06/11 职场文书
一年级小学生评语大全
2014/12/25 职场文书
试用期辞职信范文
2015/03/02 职场文书
民事辩护词范文
2015/05/21 职场文书
中秋联欢会主持词
2015/07/04 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
Python如何让字典保持有序排列
2022/04/29 Python