第404页前不久刚开始使用vue开发一个项目,花了很多时间在坑里摸索。今天要填的坑是在vue-router中开启history模式后,直接进入routing子目录,页面会报404,为什么,原因很简单。因为服务器上根本不存在这个路由子目录,如果直接进去,浏览器当然会404,解决方法需要后端配合。在服务器上配置它。如果找不到浏览器请求页面,则统一返回index.html页面,即index.html会被当做404处理。【HTML5历史模式】(https://router.vuejs.org/zh-cn/essentials/history-mode.html)配置文档描述了如何配置apache和nginx服务器,这里介绍如何配置tomcat服务器。我这里是在WEB的web.xml文件中添加404/index.html空白页本以为到此结束,结果是空白页,资源加载没问题。hash模式之前一切正常,改成history模式就挂了,一脸懵逼。然后查资料,修改测试了两个小时,才发现这里vue发布后的代码是放在/COMS目录下的,也就是说不是根目录。在这种情况下,必须在路由配置文件中添加基础根目录:constrouter=newRouter({//启用历史模式,当后端配置需要404时返回/index.htmlmode:'history',//当项目不在根目录时,必须添加子目录路径,否则为空白页面(资源加载正常)base:'/COMS',routes:[//404page{path:'*',component:ErrorPage},{...}]})两步解决问题,可以直接http://www.demo.com/login进入页面,完美!但是如果访问一个不存在的路由http://www.demo.com/loginxxx怎么办?看上面,给定的代码已经写好了,添加一个ErrorPage组件,前端路由会处理错误页面。就这样结束了,恭喜!