vue项目打包需要修改的路径问题

Vue项目打包部署常见问题
本文解析Vue项目打包后遇到的路径错误、router-view显示问题及背景图片引用错误,提供config/index.js和utils.js的修改方案,确保部署顺利。

vue-cli项目打包需要修改的路径问题
vue 打包生成配置文件,方便外部修改公共路径,不用每次都进行打包部署
vue打包后改变路径的问题

  1. 命令行输入:npm run build

    打包出来后项目中就会多了一个文件夹dist,这就是我们打包过后的项目。
    在这里插入图片描述

第一个问题,文件引用路径。我们直接运行打包后的文件夹中的index.html文件,会看到网页一片空白,f12调试,全是css,js路径引用错误的问题。

解决:到config文件夹中打开index.js文件。

文件里面有两个assetsPublicPath属性,更改第一个,也就是更改build里面的assetsPublicPath属性:

在这里插入图片描述

assetsPublicPath属性作用是指定编译发布的根目录,‘/’指的是项目的根目录 ,’./’指的是当前目录。

改好之后重新打包项目,运行index.html文件,我们可以看到没有报错了。但是router-view里面的内容却出不来了。

第二个问题:router-view中的内容显示不出来。路由history模式。

这个坑是当你使用了路由之后,在没有后端配合的情况下就手贱打开路由history模式的时候,打包出来的文件也会是一片空白的情况,

很多人踩这个坑的时候花了很多时间,网上的教程基本上都是说的第一个坑,这个坑很少有人提起。

在这里插入图片描述

解决:// mode: ‘history’,//将这个模式关闭就好

这里并不是说不能打开这个模式,这个模式需要后端设置的配合,详情可以看:路由文档

第三个问题 就是背景图片引用资源错误

此时通过img标签引入的图片显示正常,是因为img为html标签,他的路径是由index.html开始访问的,他走static/img/'图片名’是能正确访问到图片的

但是app.css访问static/img/'图片名’是访问错误的,因为在css目录下并没有static目录。所以此时需要先回退两层到根节点处才可以正确获取到图片。

具体办法是:

打开build/utils.js,在图中相应位置加入红框内容,其中值可能会有不同,若不同,自己配置成相应的即可。

在这里插入图片描述

### Vue 项目打包路径配置解决方案 在 Vue.js 开发中,项目打包后可能会遇到路径问题,这些问题通常会影响资源的正确加载,导致图片、样式文件或脚本无法正常工作。以下是针对 Vue 项目打包路径相关问题的解决方案。 #### 1. 静态资源路径错误 当静态资源(如图片、CSS 文件等)在打包后无法正确加载时,可能是由于 `publicPath` 配置不正确导致的。Vue CLI 提供了 `vue.config.js` 文件来配置项目的公共路径。通过设置 `publicPath` 参数,可以解决静态资源路径问题。例如,如果项目部署在子目录下,则需要将 `publicPath` 设置为对应的子路径[^1]。 ```javascript module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/your-sub-path/' : '/' }; ``` #### 2. 接口路径丢失问题Vue 项目打包后接口路径丢失时,可以通过以下方法解决: - **确认接口路径配置**:检查项目的 API 路径是否为绝对路径,如果是相对路径,则需要调整为绝对路径。 - **使用环境变量**:通过 `.env` 文件配置不同的环境变量,确保开发和生产环境下的接口地址正确[^2]。 ```javascript // .env.production VUE_APP_API_BASE_URL=https://api.example.com ``` 在代码中使用环境变量: ```javascript const apiUrl = process.env.VUE_APP_API_BASE_URL; ``` #### 3. 页面刷新报错问题 页面刷新报错通常是由于路由模式配置不当引起的。如果使用的是 `history` 模式路由,在服务器端需要配置重定向规则,将所有未匹配的路径重定向到 `index.html` 文件[^3]。 对于 Nginx 配置示例: ```nginx location / { try_files $uri /index.html; } ``` #### 4. 打包后显示空白问题 如果发现本地图片显示不出来,可能是因为图片地址引用错误。可以在 `vue.config.js` 中新增 `publicPath` 参数,或者直接修改 `build/utils.js` 文件中的 `ExtractTextPlugin.extract` 方法,添加 `publicPath: '../../'`[^4]。 ```javascript module.exports = { chainWebpack: config => { config.module .rule('images') .use('url-loader') .tap(options => Object.assign(options, { publicPath: '../../' })); } }; ``` ### 注意事项 - 确保 `publicPath` 的值与实际部署环境一致。 - 在使用 `history` 模式路由时,必须配置服务器端的重定向规则。 - 如果项目中有动态生成的资源路径,建议统一使用相对路径或通过环境变量动态生成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值