跳转至

部署在二级目录

部署在二级目录的时候需要对代码做一些修改

1. 添加 VITE_APP_BASE_PATH 变量,方便一键修改,各个地方都生效

.env.development.env.production.env.staging文件中分别添加 VITE_APP_BASE_PATH

比如 production 正式环节部署在 demo 目录修改就是如下

# 页面标题
VITE_APP_TITLE = 赤子心智管理系统

# 生产环境配置
VITE_APP_ENV = 'production'

# 赤子心智管理系统/生产环境
VITE_APP_BASE_API = '/prod-api'

# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip

# 部署二级目录路径
VITE_APP_BASE_PATH = '/demo/'

2. vite.config.js 文件修改

base: VITE_APP_ENV === "production" ? env.VITE_APP_BASE_PATH || "/" : "/",

其实我感觉如果上面的env文件如果都配置了 VITE_APP_BASE_PATH 的话直接下面的就行

base:  env.VITE_APP_BASE_PATH 

3. src/router/index.js 文件修改

history: createWebHistory(import.meta.env.VITE_APP_BASE_PATH),

4. src/layout/components/Navbar.vue 退出登录修改

import router from '@/router'
function logout() {
  ElMessageBox.confirm('确定注销并退出系统吗?', '提示', {
    confirmButtonText: '确定',
    cancelButtonText: '取消',
    type: 'warning'
  }).then(() => {
    userStore.logOut().then(() => {
      console.log('退出')
      router.push('/login')   // 不要再用 location.href
    })
  }).catch(() => { })
}
  1. src/utils/request.js 登录过期重新登录
import router from '@/router'

// location.href = '/index'
router.push("/index"); // 不要再用 location.href

评论