Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案


Posted in Javascript onMay 15, 2018

遇到的问题

使用webpack打包vue后,将打包好的文件,发布到Tomcat上,访问成功,但是刷新后页面报404错。

在网上查找了一下,原来是HTML5 History 模式引发的问题,具体为什么,vue官方已经给出了解释,你可以看https://router.vuejs.org/zh-cn/essentials/history-mode.html

但是看完问题又来了,官方给出的解决方案中没有说tomcat下,怎么决解。

解决方案

根据官方给出的解决方案原理

你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。

所以在tomcat服务器下你可以这么做。在打包好的项目根目录下新建一个WEB-INF文件夹,在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>

这样的目的就是一旦出现404就返回到 index.html 页面。

最后还需要配置一下你的route,配置一个覆盖所有的路由情况,然后在给出一个 404 页面。

const router = new VueRouter({
 mode: 'history',
 routes: [
  { 
    path: '*', 
    component: (resolve) => require(['./views/error404.vue'], resolve) 
  }
 ]
})

总结

以上所述是小编给大家介绍的Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript创建命名空间(namespace)的最简实现
Dec 11 Javascript
js的写法基础分析
Jan 17 Javascript
IE中JS跳转丢失referrer问题的2个解决方法
Jul 18 Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 Javascript
jquery自适应布局的简单实例
May 28 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
Oct 15 Javascript
js css自定义分页效果
Feb 24 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 Javascript
详解vue微信网页授权最终解决方案
Jun 16 Javascript
Openlayers显示地理位置坐标的方法
Sep 28 Javascript
Ant design vue中的联动选择取消操作
Oct 31 Javascript
vue实现lodop打印功能的示例
Nov 11 Javascript
解决linux下node.js全局模块找不到的问题
May 15 #Javascript
vue :src 文件路径错误问题的解决方法
May 15 #Javascript
利用npm 安装删除模块的方法
May 15 #Javascript
vux uploader 图片上传组件的安装使用方法
May 15 #Javascript
使用webpack搭建react开发环境的方法
May 15 #Javascript
浅谈Node.js 沙箱环境
May 15 #Javascript
npm全局模块卸载及默认安装目录修改方法
May 15 #Javascript
You might like
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
Python 命令行非阻塞输入的小例子
2013/09/27 Python
Python常用模块用法分析
2014/09/08 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
python多进程共享变量
2016/04/06 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
python boto和boto3操作bucket的示例
2020/10/30 Python
python实现KNN近邻算法
2020/12/30 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
企业年度评优方案
2014/06/02 职场文书
食品安全标语
2014/06/07 职场文书
培训通知
2015/04/17 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技