若依分离版部署细节

1,186 阅读2分钟

后端

后端部署相对简单。后端使用war包的部署方式,修改ruoyi-admin中的pom文件,将打包方式修改为war包的方式(原先应该是pom方式,如果没有就加,有就改)

<packaging>war</packaging>

之后打开idea自带的maven工具,展开父模块的Lifecycle,点击package,在ruoyi-admin模块下的target文件夹可观察到生成的war包。打包后最好修改war包的名称,结合项目名修改,比如xxJava。

前端

前端部署相对复杂,要考虑的东西比较多。首先修改生产环境文件.env.production,将VUE_APP_BASE_API的值修改为与war包同名的值(xxJava)(跟web服务器上其他的项目名不能相同)。

接下来修改vue.config.js文件,将publicPath的值与outputDir的值保持一致,命名最好能体现这个项目,比如xxView,等(注:publicPath:"/xxView/",outputDir:"xxView")。

部署后如果出现退出登录时报404的错误,则需修改退出登录逻辑,在src中找到layout文件夹,展开components文件夹,进入Navbar.vue文件,找到logout函数,注释掉location.href,修改为 this.$router.push(`/login?redirect=${this.$route.fullPath}`) 如果登录过期后也可能出现404,同理,修改登录过期后的重定向代码,在request.js下。

部署后如果出现刷新报404的错误,则需将路由模式由history修改为hash模式,在src中找到router文件夹,进入router中的index.js文件(router中只有这一个文件),会看到这样一段代码:

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

这时需要将history改为hash

修改后,执行指令 npm run build:prod,之后会生成一个名为xxView的文件夹

服务器部署

本文使用tomcat进行部署,使用finalshell远程连接服务器。首先进入webapps文件夹,将后端生成的war包(xxJava)拖进去,上传完成后刷新,则会生成一个名为xxJava的文件夹。之后将打包好的前端文件夹(xxView)拖进去(与后端是同级的)。

之后就可以在浏览器启动了。url输入:ip:port/xxView,第一次进入稍等一小会儿,不出意外的话就会显示登录界面了。(如果还报404,应该是验证码请求错误,检查你的前后端设置的端口)。