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 相关文章推荐
IE 下Enter提交表单存在重复提交问题的解决方法
May 04 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
May 27 Javascript
JavaScript分秒倒计时器实现方法
Feb 02 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
Sep 19 Javascript
APP中javascript+css3实现下拉刷新效果
Jan 27 Javascript
JavaScript函数内部属性和函数方法实例详解
Mar 17 Javascript
详解vuejs之v-for列表渲染
Jun 22 Javascript
详解使用vuex进行菜单管理
Dec 21 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
JavaScript中使用import 和require打包后实现原理分析
Mar 07 Javascript
图文讲解vue的v-if使用方法
Feb 11 Javascript
async/await让异步操作同步执行的方法详解
Nov 01 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
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
JQuery 操作select标签实现代码
2010/05/14 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
javascript Function函数理解与实战
2017/12/01 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
python中元类用法实例
2014/10/10 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
悬挂训练绳:TRX
2017/12/14 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
Nike香港官网:Nike HK
2019/03/23 全球购物
什么是会话Bean
2015/05/14 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
简单通用的简历自我评价
2014/09/21 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
2015年创先争优工作总结
2015/05/23 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
golang中的struct操作
2021/11/11 Golang