Estoy desarrollando una aplicación .Net 6 Blazor Wasm . Necesito colocar <script type="application/ld+json"> dentro de cada componente de la página de destino para obtener beneficios de SEO .
Ya estoy usando <HeadContent> para agregar otras etiquetas <meta> y <link> . Así que decidí usar el mismo componente para este propósito.
Sin embargo, cuando coloco la etiqueta <script> dentro de <HeadContent> , aparece el siguiente error de compilación:
Las etiquetas de script no deben colocarse dentro de los componentes porque no se pueden actualizar dinámicamente. Para solucionar esto, mueva la etiqueta del script al archivo 'index.html' o a otra ubicación estática.
Para solucionar este problema, agregué mi etiqueta de secuencia de comandos como texto de cadena dentro <HeadContent> como se muestra a continuación,
@page "/" @inject NavigationManager NavigationManager <HeadContent> @($@"<script type=""application/ld+json""> {{ ""@context"": ""https://schema.org"", ""@type"": ""WebSite"", ""publisher"": {{ ""@type"": ""Organization"", ""name"": ""Page Name"", ""url"": ""{NavigationManager.BaseUri}"", ""logo"": {{ ""@type"": ""ImageObject"", ""url"": ""{NavigationManager.BaseUri}favicon.ico"", ""width"": 16, ""height"": 16 }} }}, ""url"": ""{NavigationManager.BaseUri}"", ""mainEntityOfPage"": {{ ""@type"": ""WebPage"", ""@id"": ""{NavigationManager.BaseUri}"" }}, ""description"": ""some good description about the page"" }} </script>") </HeadContent>Pero esto representa el script como texto dentro de la etiqueta principal en el navegador, como se muestra en la siguiente captura de pantalla:
¿Esto afectará los beneficios de SEO o hay alguna mejor manera de manejar esto? Por favor asiste.
Si está seguro de que sabe lo que está haciendo y quiere usar una etiqueta de secuencia de comandos, y lo probará a fondo, puede anular la advertencia de esta manera
<script suppress-error="BL9992">...</script> En este caso, como su script contiene json, puede estar bien
Está representando una cadena sin marcas.
@(new MarkupString($@"<script type=""application/ld+json""> {{ ""@context"": ""https://schema.org"", ""@type"": ""WebSite"", ""publisher"": {{ ""@type"": ""Organization"", ""name"": ""Page Name"", ""url"": ""{NavigationManager.BaseUri}"", ""logo"": {{ ""@type"": ""ImageObject"", ""url"": ""{NavigationManager.BaseUri}favicon.ico"", ""width"": 16, ""height"": 16 }} }}, ""url"": ""{NavigationManager.BaseUri}"", ""mainEntityOfPage"": {{ ""@type"": ""WebPage"", ""@id"": ""{NavigationManager.BaseUri}"" }}, ""description"": ""some good description about the page"" }} </script>"))