关于.net core集成vue3的history模式路由访问404问题
记录一个最近遇到的问题。
最近在做一个项目,在.net8 web api项目集成vue3前端,实现前后端分离。
简单来说,就是.net8实现api功能,vue3实现前端功能。
1、.net8添加静态文件访问功能
app.UseStaticFiles();
- 2、vue3打包成静态文件
- 3、把打包的静态文件放在.net8的wwwroot目录里面
其实在这个时候,已经集成成功了,但是现在有一个情况,那就是如果vue3使用history模式的时候,如果直接通过url访问特定页面,比如 xxx.com/user/123,这个时候是会响应404的,因为history模式必须在vue的index.html文件内实现重定向,这个时候可以通过.net的中间件来实现这个重定向 service添加routing
// 添加URL重写服务
services.AddRouting();
app修改
app.UseRouting();
app.MapControllers();
app.MapFallbackToFile("/index.html");
可以在访问不到任何资源的情况下,默认重定向到一个文件,这个时候再访问xxx.com/user/123就成功了