SPA直接访问url的问题

我做的都是spa,一上来直接访问的是localhost:8080/这么玩得,
但是如果浏览器直接输一个url是localhost:8080/login,然后就直接向后台server请求了,回来就404了, 作为spa后台肯定不知道login这些玩意啊,都是前端搞定的,这种情况应该用什么方法解决呢?
求思路和相关关键词,谢谢诸位

后台是express,前面是vue.js

阅读 4.5k
5 个回答

路由模式换成hash

配置hash路由,这样就不会走到后端了,如果你使用的是vue-router的话,应该默认的就是hash路由,同事你在配路由的时候还要配一个默认路由,这样无法识别的时候,直接redirect到别的path

你使用的是router的history模式,改成hash是一种方式,这样的话前台页面就没有localhost:8080/login这种url了,就变成localhost:8080/#login

还有一种方式就是server上拦截404请求,默认返回首页html文件

需要后端配合,spa只有一个页面,而访问其他页面肯定都是404,所以后端可以让404的之后直接重定向到index.html

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题