ale*_*zyk 20 asp.net asp.net-core
在 ASP.NET Core 2.2 中,拥有一个带有 React 前端和工作服务器端渲染的 ASP.NET Core 网站是相当简单的 - 因为 ASP.NET Core+React 模板中支持开箱即用的 SSR ,它在内部运行NodeServices
以使用 node.js 执行 javascript。
然而,对于 ASP.NET Core 3.1,事情不再那么容易了,主要是因为SpaServices
和NodeServices
类被声明为过时并且将根据此链接被 .NET 5 删除。因此不再使用来自 C# 的节点执行 javascript。
现在,除了信息之外,ASP.NET Core 2.2 中建议的服务器端渲染现已过时,我发现如何继续的唯一建议来自上面的文章:
要启用服务器端预渲染和热模块重新加载等功能,请参阅相应 SPA 框架的文档。
但是,如果我理解正确,要进行基于反应的服务器端渲染,我需要有一个 node.js 服务器,它将在服务器端执行渲染。
这是否意味着,如果我想要一个带有 React 前端和 SSR 的 ASP.NET Core 3.1 网站——我应该有一个用于 WebAPI 的 ASP.NET Core 项目,以及另一个单独的 Node.JS 项目用于前端——以SSR结束?
然后将它们部署在两个单独的 Azure AppServices 上?
这是 ASP.NET Core + React 项目的推荐架构吗?
在花了一些时间研究之后,这是当前的选择:
NodeServices
使用带有obsolete
标志的.NET Core 3.1NodeServices
自己分叉/复制和维护NodeServices
在 .NET 5 发布之前的几个月内会有一个社区驱动的分支,如果它最终将被删除小智 7
我遇到了完全相同的问题。我花了几周时间来创建一个新的设置,其中前端与后端是分开的。
我在 GitHub 上发布了准备好的样板,并写了一篇博客文章,详细解释了如何使用 ASP.NET Core 和 React启用服务器端渲染。该解决方案是 CRA(创建 React 应用程序)、CRA Storybook 和标准 ASP.NET Core MVC 模板的组合。
长话短说,我构建了我的自定义 asp-prerender-module 和 asp-prerender-data 属性。它们与基于 Node.js 的 Express 服务器通信以获取呈现的 HTML。此后,提供给浏览器的 HTML 会因动作而“水合”。
归档时间: |
|
查看次数: |
5657 次 |
最近记录: |