各位用cli3 遇到过 路由用history模式 二级路由刷新报错的情况吗

vue-cli3 打包出来 mode: ‘history’ 路由报错

一层路由没问题
二层路由目录下 刷新报错

看图说话

应该是 cli3 的 bug, vue-router---- hash 模式就没有事

出现情况: 路径超过两层 肯定会出现

目前解决办法 === 只用一层 : 等修补

1 Like

项目部署的问题

https://cli.vuejs.org/zh/guide/deployment.html#使用-history-pushstate-的路由

cli2 一点问题没有呀 ====== 用history 模式

还有一点 我这是本地呀 ,还没有上服务器部署呢 —

使用 history.pushState 的路由

如果你在 history 模式下使用 Vue Router,是无法搭配简单的静态文件服务器的。例如,如果你使用 Vue Router 为 /todos/42/ 定义了一个路由,开发服务器已经配置了相应的 localhost:3000/todos/42 相应,但是一个为生产环境构建架设的简单的静态服务器会却会返回 404。

为了解决这个问题,你需要配置生产环境服务器,将任何没有匹配到静态文件的请求回退到 index.html 。Vue Router 的文档提供了常用服务器配置指引

这是服务器 部署的时候需要设置的

1 Like

我使用cli3,路由使用history模式,一级路由访问页面正常;二级路由没有报错,但是访问二级路由,没有访问到正确的页面?请问你正确访问二级路由了吗

history模式,打出来的包,不起服务配置,刷新报错才是正常

除了mode以外,好像要设置base ,而且就算本地可以正常使用了,上线以后还是会崩的,要修改服务器配置

找到原因了 ===== 我的锅— 设置cssmoudle 导致的

请问 history模式需要配置什么,我也遇到相同问题,刷新就404了。。

如果你是nginx做服务端的话,修改一下nginx的配置etc/nginx/nginx.conf文件,配置404跳回index.html就可以了

请问楼主怎么解决的:confused::confused:

我把cssmoudle 关掉 就好了

朋友,我没有引入cssmoudle,也出现了这个问题,history模式不能用,现在还是用的hash模式