Vue项目打包 用Tomcat部署 解决刷新页面404问题

1,887 阅读2分钟

1.tomcat介绍:

tomcat是一个web容器,如果不使用此种容器,我们只能通过“fttp://d/test.html” 这种本地文件的形式进行访问。

2.tomcat安装

在安装tomcat之前首先必须配制jdk。因为tomcat是一个依赖java的程序。可登录tomcat官网直接下载压缩包(7版本以后)解压过后即安装成功。

3.tomcat 文件夹介绍

image.png

bin:存放各种平台下启动和关闭Tomcat的脚本文件

conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml

lib:存放Tomcat运行需要的库文件(JARS);

logs:存放Tomcat执行时的LOG文件;

temp: 存放Tomcat运行时所产生的临时文件

webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录

work:存放jsp编译后产生的class文件;

conf目录中一些关键文件说明:

server.xml文件:该文件用于配置和server相关的信息,比如tomcat启动的端口号、配置host主机、配置Context

web.xml文件:部署描述文件,这个web.xml中描述了一些默认的servlet,部署每个webapp时,都会调用这个文件,配置该web应用的默认servlet。

tomcat-users.xml文件:配置tomcat的用户密码与权限。

context.xml:定义web应用的默认行为。

ps:通过点击bin目录下startup即可以启动tomcat服务,通过在地址栏中输入:http://localhost:8080 判断有没有成功。成功界面如下:

4.vue 打包

1、解决js文件和css文件img文件出现404的问题

首先打开vue项目下的vue.config.js,此文件需要自己新建(若没有的话),配制publicPath 的路径:

 publicPath: process.env.NODE_ENV === "production" ? '/apps/' : '/' 

如上代码表示:vue打包过后的的dist目录下的资源将放到tomcat目录下的webapps的apps目录下。若不这样配制将会出现如js文件和css文件img文件出现404的问题

2、 解决vue项目部署成功过后启动tomcat出现404的问题

vue-route的路由跳转分为hash、history、abstract, vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。这种模式就是一个正常的url地址。但是使用history模式部署项目时需要后端配制,配制方法如下:

** 1、在tomcat的webapps的apps(vue打包项目存放的目录)目录新建一个WEB—INF的文件夹,打开此文件夹再新建一个web.xml的文件。文件内容如下**:

  <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

  <display-name>webapp</display-name>
  <description>
     webapp
  </description>
  <error-page>  
   <error-code>404</error-code>  
   <location>/index.html</location>  
</error-page>  
</web-app>

目录结构如下:

image.png

2、修改vue项目的router文件的base:

image.png