【问题标题】:How to disable Blazor server side pre-render?如何禁用 Blazor 服务器端预渲染?
【发布时间】:2021-11-09 21:52:19
【问题描述】:

要在 asp.net core preview 3 上禁用服务器端预渲染,您只需评论 @(await Html.RenderComponentAsync<MyApp>())

从asp.net core preview 4开始,注释这行时,页面不渲染,主组件@page "/",标签<app>保持空白。

那么,我们如何禁用服务器端预渲染?

【问题讨论】:

    标签: blazor blazor-server-side asp.net-core-3.0


    【解决方案1】:

    终于在github中通过cores-system找到了解决方案 来源:https://github.com/aspnet/AspNetCore/issues/9584#issuecomment-485257261

    app.UseEndpoints(endpoints =>
    {
       endpoints.MapBlazorHub().AddComponent<App>(selector: "app");
       endpoints.MapFallbackToFile("index.html"); // or - endpoints.MapFallbackToPage("/_Host");
    });
    

    希望这行得通...

    【讨论】:

    • 附加信息:1) 在 wwwroot 文件夹中添加 index.html 2) 从 html 中移除 &lt;base href="~/" /&gt;
    【解决方案2】:

    根据 MS Docs: https://docs.microsoft.com/en-us/aspnet/core/blazor/state-management?view=aspnetcore-6.0&pivots=server#handle-prerendering

    要禁用预渲染,请打开 Pages/_Host.cshtml 文件并将 Component Tag Helper 的 render-mode 属性更改为 Server: CSHTML

    <component type="typeof(App)" render-mode="Server" />
    

    在 Pages/_Layout.cshtml 中禁用了内容的预呈现: CSHTML

    <component type="typeof(HeadOutlet)" render-mode="Server" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-20
      • 2020-11-13
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      相关资源
      最近更新 更多