当我正常进入的时候输入http://dev.com 是可以进去的。
当我进入子路由之后一切正常,但是如果再刷新一次的话 就找不到页面了http://dev/dashboard
当我正常进入的时候输入http://dev.com 是可以进去的。
当我进入子路由之后一切正常,但是如果再刷新一次的话 就找不到页面了http://dev/dashboard
13 回答13.1k 阅读
7 回答2.3k 阅读
9 回答1.8k 阅读✓ 已解决
6 回答1.8k 阅读
3 回答1.4k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
很简单, SPA都是前端js控制的路由,也就是说你在浏览器没有加载js的时候直接输入这个带路由的url会被发送到服务器端,服务器又不认识这个路由,所以就出现404了。
一般的解决方案都是在服务器把找不到的路由指到index.html(vue页面)。这样在vue-router初始化好之后就会跳到相应的路由页面。
这个带来的问题就是404页面不会出现了,所以可能要在前端处理好404.
官方文档:
https://router.vuejs.org/zh-cn/essentials/history-mode.html
建议: 如果允许,在路由上加一个标识。比如
http://dev.busys.1shen7.com/vue
是当前的页面,所以的vue-router路由都跟在/vue/后面,这样在服务器端只要匹配/vue开头的就指向index.html