Vue访问Public文件夹全过程

 更新时间:2025年10月27日 15:20:00   作者:汪程序猿  
访问Public文件夹的内容可以实现动态加载图片或视频,因为这些文件不会被打包,可以直接使用路径访问,在vue.config.js中配置publicPath,可以在template的:src或script的datacomputed中使用require()引入或拼接路径,实现动态访问

说明

为什么需要访问Public文件夹的内容?

一般都是放在assets下面,但是无法实现动态访问,这就造成如果你要动态加载一个图片或者视频是不行的。

比如:我现在把testHuawei.mp4放在assets文件夹下面,那么他会被打包,这时候,运行,你找到这个图片,它的路径为:

http://localhost:8081/media/testHuawei.c4367207.mp4

多出一个c4367207(这是内部为了安全),这样你在写代码无法动态加载,因为只要是文件不一样,生成的数值也是不一样。

所以,我们有时候不需要生成一堆无用的数,可以把文件放在Public文件夹中,这样,里面的资源就不会被打包,可以直接用路径进行访问。

如何访问

首先在vue.config.js

在vue文件中使用

     publicPath: process.env.BASE_URL

以上就可以直接访问,可以动态访问

字符串的拼接

这里可以根据电影的ID,就可以拼接成

1.mp4
2.mp4
3.mp4

这样就是实现了动态访问。

它的访问路径为

http://localhost:8081/1.mp4
http://localhost:8081/2.mp4
http://localhost:8081/3.mp4

扩展

常见

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

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

require

<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 的 datacomputed 中都可以进行 require 引入或拼接

本文所用的

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

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • uniapp自定义导航栏新手保姆级教程

    uniapp自定义导航栏新手保姆级教程

    uniapp的顶部导航栏有时候不符合设计需求,我们可以自定义顶部导航栏,下面这篇文章主要给大家介绍了关于uniapp自定义导航栏的保姆级教程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • 解决vue页面渲染但dom没渲染的操作

    解决vue页面渲染但dom没渲染的操作

    这篇文章主要介绍了解决vue页面渲染但dom没渲染的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue导出word纯前端的实现方式

    vue导出word纯前端的实现方式

    这篇文章主要介绍了vue导出word纯前端的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 深入解析el-col-group强大且灵活的Element表格列组件

    深入解析el-col-group强大且灵活的Element表格列组件

    这篇文章主要为大家介绍了el-col-group强大且灵活的Element表格列组件深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • vue 全选与反选的实现方法(无Bug 新手看过来)

    vue 全选与反选的实现方法(无Bug 新手看过来)

    下面小编就为大家分享一篇vue 全选与反选的实现方法(无Bug 新手看过来),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • vue中的文本空格占位符说明

    vue中的文本空格占位符说明

    这篇文章主要介绍了vue中的文本空格占位符说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • vue-router使用next()跳转到指定路径时会无限循环问题

    vue-router使用next()跳转到指定路径时会无限循环问题

    这篇文章主要介绍了vue-router使用next()跳转到指定路径时会无限循环问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 在 Vue 项目中引入 tinymce 富文本编辑器的完整代码

    在 Vue 项目中引入 tinymce 富文本编辑器的完整代码

    这篇文章主要介绍了在 Vue 项目中引入 tinymce 富文本编辑器的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • vue全局实现数字千位分隔符格式

    vue全局实现数字千位分隔符格式

    这篇文章主要为大家详细介绍了vue全局实现数字千位分隔符格式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • Vue3父子组件相互调用方法举例详解

    Vue3父子组件相互调用方法举例详解

    这篇文章主要给大家介绍了关于Vue3父子组件相互调用方法的相关资料,vue中我们常常用到组件,那么组件中互相调用也是经常遇到的,需要的朋友可以参考下
    2023-08-08

最新评论