资讯专栏INFORMATION COLUMN

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

adam1q84 / 1696人阅读

摘要:记录总结一下的中引入图片路径的几种书写方式中静态资源的引入机制关于静态资源的官方文档静态资源可以通过两种方式进行处理在被导入或在中通过相对路径以开头被引用。如果是一个绝对路径,例如,它将会被保留不变。

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

vue中静态资源的引入机制
Vue.js关于静态资源的官方文档

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

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

诸如 background: url(...)CSS @import 的资源

写在 template 中内联 style 的 background: url(...) 样式,在当前版本的测试中,即使使用了相对路径也不会被webpack处理

例如,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:

 // √
// 编译后:

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

×

 // ×
// 编译后:

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

 // √
 // √
 // √

// 编译后:

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

 // -
// 编译后:

用绝对路径引入时,路径读取的是public文件夹中的资源,任何放置在 public 文件夹的静态资源都会被简单的复制到编译后的目录中,而不经过 webpack特殊处理。
当你的应用被部署在一个域名的根路径上时,比如http://www.abc.com/,此时这种引入方式可以正常显示
但是如果你的应用没有部署在域名的根部,那么你需要为你的 URL 配置 publicPath 前缀
publicPath 是部署应用包时的基本 URL,在 vue.config.js 中进行配置,详情参阅官方文档

 // √
// 编译后:

vue.config.js中:

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

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

reference

https://cli.vuejs.org/zh/guid...
https://cli.vuejs.org/zh/conf...
https://www.cnblogs.com/xiaoj...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104768.html

相关文章

  • 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)

    摘要:并总结经典面试题集各种算法和插件前端视频源码资源于一身的文档,优化项目,在浏览器端的层面上提升速度,帮助初中级前端工程师快速搭建项目。 本文是关注微信小程序的开发和面试问题,由基础到困难循序渐进,适合面试和开发小程序。并总结vue React html css js 经典面试题 集各种算法和插件、前端视频源码资源于一身的文档,优化项目,在浏览器端的层面上提升速度,帮助初中级前端工程师快...

    li21 评论0 收藏0
  • 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)

    摘要:并总结经典面试题集各种算法和插件前端视频源码资源于一身的文档,优化项目,在浏览器端的层面上提升速度,帮助初中级前端工程师快速搭建项目。 本文是关注微信小程序的开发和面试问题,由基础到困难循序渐进,适合面试和开发小程序。并总结vue React html css js 经典面试题 集各种算法和插件、前端视频源码资源于一身的文档,优化项目,在浏览器端的层面上提升速度,帮助初中级前端工程师快...

    AaronYuan 评论0 收藏0
  • 聊聊Vue.js组件间通信几种姿势

    摘要:子组件向父组件通信方法一使用事件父组件向子组件传递事件方法,子组件通过触发事件,回调给父组件。非父子组件兄弟组件之间的数据传递非父子组件通信,官方推荐使用一个实例作为中央事件总线。 写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出。 文章的原地址:https://github.com/answ...

    Profeel 评论0 收藏0
  • 前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)

    摘要:并总结经典面试题集各种算法和插件前端视频源码资源于一身的文档,优化项目,在浏览器端的层面上提升速度,帮助初中级前端工程师快速搭建项目。 本文是关注微信小程序的开发和面试问题,由基础到困难循序渐进,适合面试和开发小程序。并总结vue React html css js 经典面试题 集各种算法和插件、前端视频源码资源于一身的文档,优化项目,在浏览器端的层面上提升速度,帮助初中级前端工程师快...

    pumpkin9 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<