原因
后面的部分不会被当作请求发送到服务器,部署在服务器侧的雷池自然也无法接收到。
解决方案
一般 vue 的哈希路由模式会出现这种情况,建议用户改用 vue 的 history模式
参考
在 Vue.js 中 Vue 路由管理器(Vue Router)支持两种模式:哈希模式和 HTML5 History 模式。默认情况下,Vue Router 使用哈希模式。
哈希模式(Hash Mode)
在哈希模式下,URL 的变化是通过 URL 中的 # 符号来实现的,这种模式不需要服务器配置。例如,当你访问 http://example.com/#/home 时,# 后面的部分(/home)就是路由的路径。
特点
兼容性:哈希模式在所有支持 HTML5 History API 的浏览器中都能工作,包括旧版浏览器。
无服务器配置:不需要服务器配置来处理路径,因为 # 后面的部分不会被当作请求发送到服务器。
SEO 问题:由于 URL 中的 # 部分被视为 fragment(片段),它不会被搜索引擎索引,这可能会影响网站的 SEO。
HTML5 History 模式
HTML5 History 模式使用 HTML5 的 History API 来改变 URL,不包含 #。例如,http://example.com/home 。 这种模式下的 URL 更加美观,也有利于 SEO。
特点
美观:URL 看起来更干净,没有 #。
SEO 友好:由于 URL 变化被浏览器视为历史记录的一部分,这有助于搜索引擎优化。
服务器配置:需要服务器配置来确保所有路径都返回同一个 index.html 文件,以便 Vue Router 能够处理路由。