我正在開發一個.Net 6 Blazor Wasm應用程式。我需要放置<script type="application/ld json">在每個登陸頁面組件中以SEO獲得好處。
我已經在使用<HeadContent>添加其他<meta>和<link>標簽。所以我決定為此使用相同的組件。
但是,當我將<script>標簽放在里面時<HeadContent>,我得到如下編譯錯誤,
腳本標簽不應放置在組件內,因為它們無法動態更新。要解決此問題,請將腳本標簽移動到“index.html”檔案或其他靜態位置。
為了解決這個問題,我在里面添加了我的腳本標簽作為字串文本<HeadContent>,如下所示,
@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>
但這會將腳本呈現為瀏覽器中 head 標記內的文本,如下圖所示:

這會影響SEO福利還是有更好的方法來處理這個問題?請協助。
uj5u.com熱心網友回復:
您正在呈現一個字串而不是標記。
@(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>"))
uj5u.com熱心網友回復:
如果您確定自己知道自己在做什么并且想要使用腳本標簽 - 并且會徹底測驗 - 您可以像這樣覆寫警告
<script suppress-error="BL9992">...</script>
在這種情況下,由于您script包含 json,因此可能沒問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/408838.html
標籤:
