SuperBig
2023-08-08 17:26:35 +08:00
我知道的有两种方式,第一种就是直接用 Microsoft.AspNetCore.SpaServices.Extensions ,上面 5L 和 3L 两位都说过了。
第二种方式:手动集成,我是因为历史遗留问题,无法直接用第一种方式所提及的类库,所以只能自己手动集成。
1 、前端项目 build 后的产物丢到 api 项目的 wwwroot 里。
2 、api 项目增加 UseStaticFiles 中间件,用以拦截静态资源。
3 、api 项目的控制器都增加个统一的前缀,如/user/detail -> /api/user/detail ,这个怎么加起来简单你自己摸索,方式有很多。
4 、api 项目增加 MapFallbackToFile ,将所有 webapi 没有 match 的请求都转到第一步的产物入口文件,一般是 index.html 。
第四部的代码片段:
app.UseEndpoints(endpoints=>{
//....
endpoints.MapFallbackToFile("index.html");
});