一:部署linux + nginx
1. 部署后台代码
1.1由于本人采用的是idea工具开发,所以在terminal中mvn clean package生成对应的jar包,此jar包可去对应文件所在目录的target查找。
1.2将jar复制到linux之中。
2. 部署前端代码
2.1使用npm run build:prod --report将前端项目打包,将会在前端目录下生成一个dist文件夹。
2.2同样将dist复制到linux之中。
3. linux服务器中需要装载redis以及nginx,redis是存放缓存数据,nginx是用于代理前后端服务。
3.1 安装redis并启动。
3.2 安装nginx并修改相关配置。
找到nginx所在目录,并修改conf/nginx.conf文件,修改如下图:
4.启动jar包,并启动nginx,在windows浏览器中直接输入ip即可访问。
4.1jar后台启动,后台启动的话可以进行其他操作,否则将无法进行其他操作。
nohup java -jar jarName >msg.log 2>&1 &
msg.log文件是在输入上一行启动命令的当前目录下
5.有的小伙伴可能第一次打包放上去没问题,但是后期修改了一些文件或者菜单等,再部署上去可能会遇到菜单打不开之类的问题,
不要慌,只要修改vue.config.js文件里面的配置就好,如下图,去掉/之前的.即可
二:部署windows + tomcat(无nginx)
1. 修改pom文件,改jar为war:
2. 打包成war包之后直接复制到windows中的tomcat的webapps目录下,并修改名称为prod-api,类似部署在linux中需要修改nginx.conf的配置。
3. 将vue项目打包并把dist文件复制到tomcat的webapps目录下。
4. 修改tomcat目录下的conf文件夹下的service.xml:
1. 启动端口为后台的启动端口
2. 在host节点下添加对应的访问路径配置代码
<Context path="/" docBase="dist的绝对路径(也可以写相对于webapps的路径)" reloadable="true" crossContext="true"></Context>
如果不添加此处代码,登录是可以的,但是登陆之后是空白页,因为在本地的运行的项目是类似ip:端口/router地址的,如果不修改,将会导致前面所说的问题。(不知道说的对不对,个人猜想)
5. 启动tomcat,输入ip:端口即可。
6. 以上操作之后刷新页面的话会存在404错误,所以需要在dist目录的文件夹下新建WEB-INF文件夹,并在里面添加web.xml文件:
web.xml文件代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" metadata-complete="true">
<display-name>Router for Tomcat</display-name>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>
三:解决调用第三方api如百度地图api所存在的跨域问题