Vue3 Vue-Router 部署在nginx二级目录之下的方法

项目场景:

在部署Vue-Router项目的时候,有时需要部署在二级目录之下,比如管理系统一般部署在/manage目录之下。

问题描述

如果直接把本地的系统上传到服务器的/manage文件夹下,再通过router进入其他页面时,就会丢失/manage的目录,造成错误。

解决方案:

1 添加URL前缀环境变量

在.env.production文件中添加环境变量如下

VITE_BASE_PATH = /manage/  

2 更改vite.config.js

由于vite.config.js中不能直接使用import.meta.env,因此使用loadEnv来获取环境变量,总体使用如下代码

export default defineConfig(({mode})=>{
    const root = process.cwd();
    const viteEnv = loadEnv(mode, root)
return {
    base:viteEnv.VITE_BASE_PATH,
    plugins: [
    vue(),
],
resolve: {
    alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
        }
    }
    }
})

3 更改route.js

在createRouter 中添加base属性,值为前缀地址,采用import.meta.env的方法引入

const router = createRouter({
    history: createWebHashHistory(import.meta.env.VITE_BASE_PATH),
    routes,
    base:import.meta.env.VITE_BASE_PATH,
});

4 createRouter中使用createWebHashHistory而不是createWebHistory 防止刷新后出现404页面

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值