Как отключить предварительную визуализацию на стороне сервера Blazor?

#blazor #blazor-server-side #asp.net-core-3.0

#blazor #blazor-на стороне сервера #asp.net-core-3.0

Вопрос:

Чтобы отключить предварительную визуализацию на стороне сервера, asp.net core preview 3, вам просто нужно было прокомментировать @(await Html.RenderComponentAsync<MyApp>()) .

Поскольку asp.net core preview 4, когда вы комментируете эту строку, страница не отображается, а в главном компоненте @page "/" тег <app> остается пустым.

Итак, как мы можем отключить предварительную визуализацию на стороне сервера?

Ответ №1:

Наконец-то найдено решение с помощью core-system в исходном коде github: 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. Дополнительная информация: 1) Добавьте index.html внутри папки wwwroot 2) Удаление <base href="~/" /> из html

Ответ №2:

Согласно MS Docs: https://docs.microsoft.com/en-us/aspnet/core/blazor/state-management?view=aspnetcore-6.0amp;pivots=server#handle-prerendering

Чтобы отключить предварительную визуализацию, откройте Pages/_Host.cshtml файл и измените render-mode атрибут помощника тега компонента на Server: CSHTML

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

Предварительная визуализация содержимого отключена в Pages/_Layout.cshtml:
CSHTML

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