小编Adr*_*ink的帖子

使用 Blazor 设置 html 元标记

这是参考#10450。

目标:使用来自页面本身的数据设置元标签(标题、描述等)以用于 SEO 和开放图谱目的。使用 Javascript 互操作不会有帮助,因为页面将无法被抓取。

我使用了@honkmother 的建议,并将基本组件进一步移到树上以封装标签<html>,但由于某种原因,这影响了路由。所有链接都带有前缀~/,我似乎无法理解为什么。

如果有人有兴趣看一下,我在这里创建了一个示例存储库。

_Hosts.cshtml

@page "/"
@namespace BlazorMetaTags.Pages
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@{
    Layout = null;
}

<!DOCTYPE html>
<component type="typeof(AppBase)" render-mode="ServerPrerendered" />
Run Code Online (Sandbox Code Playgroud)

应用程序库.cs

using BlazorMetaTags.Shared;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Rendering;

namespace BlazorMetaTags
{
    public class AppBase : ComponentBase
    {
        protected override void BuildRenderTree(RenderTreeBuilder builder)
        {
            builder.OpenElement(0, "html");
            builder.AddAttribute(1, "lang", "en");

            builder.OpenElement(2, "head");
            builder.OpenComponent<Head>(3);
            builder.CloseComponent();
            builder.CloseElement();

            builder.OpenElement(3, "body");

            builder.OpenElement(4, "app");
            builder.OpenComponent<App>(5);
            builder.CloseComponent();
            builder.CloseElement();

            builder.OpenComponent<Body>(6);
            builder.CloseComponent(); …
Run Code Online (Sandbox Code Playgroud)

meta-tags blazor blazor-server-side

6
推荐指数
1
解决办法
4487
查看次数

标签 统计

blazor ×1

blazor-server-side ×1

meta-tags ×1