【Vue-Router】history模式

218 阅读1分钟

history模式

需求目的

网页端Vue项目最开始是使用的hash模式,现在想通过nginx代理,需要将/#/这种hash模式改成history模式,由一个能标识项目的根路径去匹配转发,比如根路径/myproject。后续所有访问这个网页端的url都由这个根路径开始,例如:http://ip:port/myproject/login、http://ip:port/myproject/messageCode、http://ip:port/myproject/404 等。

前端更改

(1)路由配置

/src/router/index.jsconst router = new VueRouter({
    mode: "history",
    base: "/myproject/",
    routes // routes是自定义好的路由对象
})

(2)打包配置文件

/config/index.jsbuild: {
    assetsPublicPath: "/myproject/", // 设置打包后项目的静态资源URL的根路径
}

后端更改

正如Vue-Router的官方文档所说,这个非常需要后台的配合,此项目后台为SprintBoot,项目中有一个类专门处理页面未找到的情况,在这个类里做修改。还需处理静态资源文件夹static,将/myproject/static映射到/static文件夹。此处不是很清楚,后续有需要可以补充。

最终效果

访问其他路径的URL(前端中未写明的路由)都会跳转到前端写好的404页面。直接访问ip.port 能跳转到首页,直接访问ip.port/myproject/l… 也能跳转到首页,登录后页面也能正常跳转。