为什么视图组件在生产中没有渲染?

Mig*_*ura 13 asp.net-core asp.net-core-viewcomponent asp.net-core-7.0

在 Net Core 7 项目中,我在 Razor 页面上渲染视图组件:

<vc:footer></vc:footer>
Run Code Online (Sandbox Code Playgroud)

组件C#代码是:

public class FooterViewComponent : ViewComponent {
  public FooterViewComponent() { }

  public IViewComponentResult Invoke() {
    return View("Footer");
  }
} 
Run Code Online (Sandbox Code Playgroud)

文件中的 HTML/Pages/Shared/Components/Footer/Footer.cshtml是:

<footer>My Footer Test</footer>
Run Code Online (Sandbox Code Playgroud)

当我在计算机中运行该应用程序时,将呈现页脚。

但是,当我在生产中发布到服务器时,页脚视图组件不会呈现。

当在浏览器中检查页面的代码时,它显示:

<vc:footer></vc:footer>
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?我真的不知道为什么会发生这种情况。

Col*_*con 1

这是一个已知错误,可以通过此GitHub 问题进行跟踪。

当我在计算机中运行该应用程序时,将呈现页脚。

但是,当我在生产中发布到服务器时,页脚视图组件不会呈现。

据我了解,这是 Linux 服务器上的一个问题,因此如果您在 Windows 计算机上进行开发,这可能就是您遇到的差异。我正在 Mac 上进行开发,它在本地以及我部署到的 Linux 服务器上都崩溃了。

解决方法

当前的解决方法是使用global.json固定到早期的工作版本。我使用的是 SDK 版本 7.0.201,它崩溃了。但是,使用以前的版本 7.0.104 解决了我在本地 (Mac) 和生产环境 (Linux) 中的问题。

全局.json

{
  "sdk": {
    "version": "7.0.104"
  }
}
Run Code Online (Sandbox Code Playgroud)