详解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 相关文章推荐
自动生成文章摘要的代码[JavaScript 版本]
Mar 20 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
Jun 07 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
Jun 09 Javascript
详解JavaScript节流函数中的Throttle
Jul 16 Javascript
Boostrap基础教程之JavaScript插件篇
Sep 08 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
Jun 20 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
Sep 27 Javascript
koa router 多文件引入的方法示例
May 22 Javascript
vue路由教程之静态路由
Sep 03 Javascript
Vue调用后端java接口的实例代码
Oct 28 Javascript
深入了解JS之作用域和闭包
Jun 16 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字符串处理的10个简单方法
2010/06/30 PHP
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php实现上传图片生成缩略图示例
2014/04/13 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
Yii针对添加行的增删改查操作示例
2016/10/18 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
使用js如何实现全选与全不选
2013/12/30 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
js 作用域和变量详解
2017/02/16 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
解决React Native端口号修改的方法
2017/07/28 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
Python的iOS自动化打包实例代码
2018/11/22 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
jupyter notebook的安装与使用详解
2020/05/18 Python
Python map及filter函数使用方法解析
2020/08/06 Python
大学生简历中个人的自我评价
2013/10/06 职场文书
网络维护管理员的自我评价分享
2013/11/11 职场文书
档案检查欢迎词
2014/01/13 职场文书
期末自我鉴定
2014/01/23 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
食品安全责任书范本
2015/05/09 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
年终工作总结范文
2019/06/20 职场文书
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python