vue-cli3访问public文件夹静态资源报错的解决方式

当我们使用Vue.js进行项目开发时,通常需要访问public文件夹中存放的一些静态资源,例如图片、音视频等。但是,有时我们在进行开发时可能会遇到访问public文件夹静态资源时报错的情况,如何解决呢?本文将为你详细讲解。

问题分析

在vue-cli3中,开发环境下引用相对路径的静态资源是没有问题的,但是当我们使用build之后的代码时,引用相对路径的静态资源就会报404错误。

造成这个问题的原因是在build时,默认将所有资源文件打包到了根目录,导致文件路径的变化,从而请求不到相对资源。

解决方案

方案一:使用绝对路径访问静态资源

我们可以通过绝对路径的方式来访问public文件夹中的静态资源,这样就可以避免路径的变化引起的问题。例如,我们可以通过下面的方式来引用public文件夹中的图片:

<img src="/img/logo.png">

上述代码中的"/"表示应用的根目录,因此图片资源的路径会被解析为根目录下的img目录。

方案二:修改vue.config.js配置文件

我们可以通过修改vue.config.js配置文件来修改资源的基础路径,从而解决访问静态资源的问题。具体的步骤如下:

  1. 在项目的根目录下新建vue.config.js文件。
  2. 在该文件中添加如下代码:
module.exports = {
    publicPath: "./"
 }

上述代码中的"./"表示资源的相对路径为当前项目的根目录,也可以根据实际情况自行修改。

  1. 保存文件并重新启动项目。

这样,我们就可以愉快地访问public文件夹下的静态资源了。

示例说明

示例一:使用绝对路径访问静态资源

假设我们在public文件夹下有一张名为"logo.png"的图片,我们可以通过下面的代码来访问该图片:

<img src="/img/logo.png">

上述代码中的"/"表示应用的根目录,因此图片资源的路径会被解析为根目录下的img目录。

示例二:修改vue.config.js配置文件

我们在项目根目录下新建vue.config.js文件,并加入以下内容:

module.exports = {
    publicPath: "./"
 }

保存文件并重新启动项目,便可以愉快地访问public文件夹下的静态资源了。

以上就是解决vue-cli3访问public文件夹静态资源报错的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-cli3访问public文件夹静态资源报错的解决方式 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue数字类型过滤器的示例代码

    下面是关于Vue数字类型过滤器的示例代码攻略。 什么是Vue数字类型过滤器? Vue数字类型过滤器是一种可以用来格式化数字的针对Vue的特殊标签。它可以使数字看起来更清晰易读,便于用户查看。 示例一:货币符号格式化 当我们需要将一个数字格式化成货币的形式时,可以通过使用Vue数字类型过滤器来实现这一目的。下面是一个带有货币符号的数字类型过滤器的示例代码: &…

    Vue 2023年5月29日
    00
  • Vue select 绑定动态变量的实例讲解

    下面我将详细讲解如何在Vue中使用select绑定动态变量的实例攻略。 首先,我们需要导入Vue.js,然后创建Vue实例,并在该实例的data属性中定义我们需要绑定的动态变量(这里我们定义一个变量名为selectedValue)。然后我们需要在Vue实例中声明一个options对象,其中包含一个数组,该数组中包含我们需要绑定到select元素的选项。最后,…

    Vue 2023年5月29日
    00
  • Vue程序调试的方法

    下面是Vue程序调试的完整攻略,包含以下内容: 使用Chrome浏览器的开发者工具进行调试 使用Vue.js官方提供的调试工具Vue.js DevTools 在代码中使用console.log()进行调试 使用断点进行逐行调试 1. 使用Chrome浏览器的开发者工具进行调试 Chrome浏览器的开发者工具内置了强大的调试工具,可以方便地调试Vue程序。在使…

    Vue 2023年5月27日
    00
  • 解决vue vite启动项目报错ERROR: Unexpected “\x88“ in JSON 的问题

    如果你在使用vue vite启动项目时遇到了JSON解析异常,有可能是因为项目依赖项中某个文件含有非utf-8编码的字符而导致的。 解决此问题的方法如下: 在项目的根路径下创建vite.config.js文件,如果该文件已存在则直接修改它,如果没有请参照以下示例内容创建该文件。 const { createServer } = require("v…

    Vue 2023年5月28日
    00
  • Vue 路由传参加密的示例代码

    下面我将详细讲解“Vue 路由传参加密的示例代码”的完整攻略。 1. 添加 crypto-js 库 首先我们需要引入一个加密解密库:crypto-js。可以使用 npm 或者通过 CDN 引入。 <!– 通过 CDN 引入 –> <script src="https://cdn.bootcdn.net/ajax/libs/cr…

    Vue 2023年5月27日
    00
  • JS实现一个微信录音功能过程示例详解

    下面我就为大家详细讲解JS实现一个微信录音功能的完整攻略。 1. 首先明确需求 我们需要实现一个微信录音功能,用户可以通过点击按钮开启录音,并且能够获取录音的时长,以及上传录音文件到服务器进行存储。 2. 实现步骤 2.1 获取用户的授权 在微信中,需要获取用户授权才能使用麦克风进行录音。我们可以使用微信的wx.authorize接口来进行授权。具体代码如下…

    Vue 2023年5月28日
    00
  • JavaScript中textRange对象使用方法小结

    JavaScript中textRange对象使用方法小结 什么是textRange对象 textRange对象是指文本范围对象,提供了一种对文本的精确定位和操作的方式。在使用浏览器中的文本框、可编辑的HTML元素时,常常需要使用到textRange对象。textRange对象主要用于选择文本、插入文本、复制/粘贴文本、删除文本等操作。 textRange对象…

    Vue 2023年5月28日
    00
  • Vue页面骨架屏注入方法

    Vue页面骨架屏注入方法是一种性能优化的策略,可以让页面在加载数据的过程中显示出一个占位符,给用户提供更好的体验。下面是一个石乐志的攻略,包含具体的流程和示例说明。 步骤一:安装骨架屏插件 首先,你需要安装一个 Vue 骨架屏插件。我们推荐使用 vue-skeleton-webpack-plugin 或 page-skeleton-webpack-plugi…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部