摘自:官网解释当你使用history模式是,URL就像正常的url,然而你再服务端并没有卵用。因为通过vue打包最终生成一个index.html和一堆乱起八遭的js,然后你输入你在本地能跑通的路径名(http://127.0.0.1/user/id 这里我是起得本地node服务),然后会给你包一个File not found! (如 图1)。
刚开始还纳闷不都在路由里配置好吗,咋还会报找不到该文件呢?后来仔细一想这是服务端,哪来的router??? 不都打包压缩生成js文件,感觉再回到官网(https://router.vuejs.org/zh-cn/essentials/history-mode.html)查找有没有解决方案,突然发现对于 Node.js/Express,请考虑使用connect-history-api-fallback 中间件。很开心的点进去,然而不能再精简的解释让我不禁呵呵一笑(如果没看的可以去瞅瞅)。接下来按照文档给的几个api试试水,并木有解决问题,改File not found!就是不惯你病。赶快百度吧,百度结果让我无语。还是自己搞起来吧,服务端找不到所指定的文件地址,那就找个能找到的地址不就完事了吗!!!上撸代码
app.use(history({
verbose: true,
index: '/'
}))
app.get("/", function(req, res) {
res.sendFile(path.join(__dirname, "dist/index.html"))
})
重新起服务,再地址栏输入url回车,完事!
(还有更好的解决方案小伙伴、请在下面留言)