做一个小项目即想用 asp.net core 的 MVC,前后端不分离,又想用 react 怎么办

2023-08-07 16:23:09 +08:00
 289396212
有好的最佳实践吗,把 react 引入 MVC
1448 次点击
所在节点    程序员
7 条回复
Oktfolio
2023-08-07 16:32:10 +08:00
新建一个 index.html (模板引擎文件),将编译后的前端放在资源( CDN 、静态文件服务器)里面,然后在 index.html 中引入编译后的 js, css 等文件,Controller 接口跳转渲染 index.html 。

这种操作大概是可行的,在 .NET 中具体怎么操作就不知道了。

不能使用 history 路由
libasten
2023-08-07 16:56:06 +08:00
为啥不用 .NET Core WebAPI 呢?这个不就说为 react 和 vue 之类的前端框架设计了吗?
wu00
2023-08-07 17:32:39 +08:00
gowk
2023-08-07 20:09:31 +08:00
参考一下这个项目 https://github.com/hez2010/H-Judge
KKKKKKKKKKKKKKKK
2023-08-08 14:11:58 +08:00
我司目前管理后台就是这样的。netcore 下有个包可以使用:Microsoft.AspNetCore.SpaServices.Extensions 。
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");
});
289396212
2023-08-08 20:36:21 +08:00
@SuperBig 很有帮助,感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/963082

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX