Estoy usando un HeadOutlet en una aplicación net6.0 renderizada previamente del lado del servidor para establecer algunas etiquetas de encabezado, como la meta descripción, pero el servidor muestra la aplicación primero y luego los encabezados, lo que hace que los motores de búsqueda la ignoren.
@page "/" @namespace Example.Pages @using Microsoft.AspNetCore.Components.Web @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @{ Layout = null; } <!DOCTYPE html> <html lang="en"> <head> <component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" /> <base href="~/" /> <link href="css/site.css" rel="stylesheet" /> <link rel="preconnect" href="https://fonts.gstatic.com"> </head> <body> <component type="typeof(App)" render-mode="ServerPrerendered" /> <div id="blazor-error-ui"> <environment include="Staging,Production"> An error has occurred. This application may no longer respond until reloaded. </environment> <environment include="Development"> An unhandled exception has occurred. See browser dev tools for details. </environment> <a href="/" class="reload">Reload</a> <a href="#" class="dismiss">🗙</a> </div> <script src="_framework/blazor.server.js"></script> <script src="~/outsideHandleContainerJsInterop.js"></script> </body> </html> @page "/test" <HeadContent> <meta name="description" content="Hello World"> </HeadContent>Al ver la página en un navegador, se mostrarán las metaetiquetas en el encabezado como se esperaba, pero al realizar una solicitud de obtención en insomnia/cartero se devolverán los encabezados iniciales y un comentario de etiqueta de procesamiento previo de blazor.
<!--Blazor:{"sequence":0,"type":"server","prerenderId":"b0376004567c4aaf9c07defc4341e21e","descriptor":"<long string here>"}--><!--Blazor:{"prerenderId":"b0376004567c4aaf9c07defc4341e21e"}-->¿Es esto un error o me estoy perdiendo algo? Necesito que la cabeza se represente antes o con el resto de la página para que los motores de búsqueda puedan detectarla.
Esto se resolvió moviendo html/head/body de _Host.cshtml a _Layout.html. Más información descrita en esta publicación: https://github.com/dotnet/aspnetcore/issues/37293