ruoyi-vue如何部署在根目录下的多级目录

发布时间 2023-08-28 10:03:54作者: 小武爷

1、找到vue.config.js

module.exports = {
  // 部署生产环境和开发环境下的URL。
  // 默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上
  // 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
  publicPath: process.env.NODE_ENV === "production" ? "/" : "/micia/",
  // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
  outputDir: 'dist',
  // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
  assetsDir: 'static',

2、找到router/index.js

export default new Router({
  base:'micia',
  mode: 'hash', // 去掉url中的#
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

3、配置登出接口

修改/src/layout/componets/Navbar.vue文件里的logout()方法

  methods: {
    toggleSideBar() {
      this.$store.dispatch('app/toggleSideBar')
    },
    async logout() {
      this.$confirm('确定注销并退出系统吗?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.$store.dispatch('LogOut').then(() => {
          // location.href = '/index';
          location.href = '/admin'
        })
      }).catch(() => {});
    }
  }

Nginx配置

一级域名一般部署的是公司官网website-dist,二级域名部署后台项目ruoyi-dist。

server {
        listen       80;
        server_name  localhost;
		charset utf-8;
		
        location / {
            root   /root/website/website-dist;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

		location /admin {
            alias  /home/ruoyi/ruoyi-dist;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
		
		location /prod-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://127.0.0.1:9004/;
		}
 
    }