close

自定义 Head 标签

为网页增加 Head 标签(如 meta 标签)对于 SEO 优化和社交媒体分享非常重要。比如 Open Graph 是一种网页元数据协议,用于控制页面在社交媒体平台上分享时的显示效果。

目前 Rspress 会自动注入以下 Head 标签:

标签描述
<meta name="generator" content="Rspress v${version}">标识站点生成器及版本号
<meta property="og:type" content="website">Open Graph 类型,固定为 website
<meta property="og:title" content="${title}">Open Graph 标题,使用当前页面标题(如果存在)
<meta name="description" content="${description}">页面描述,使用 frontmatter 或全局配置中的 description(如果存在)

如果想增加 Head 标签可以通过以下几种方式:

全局 Head 配置

rspress.config.ts 中,你可以为所有页面设置 HTML 的 metadata(即 head 标签)。详情请查看 基础配置 - head

frontmatter 配置

你可以调整 frontmatter 中的 titledescription 字段来修改单个页面的标题和描述。

也可以使用 frontmatter - head 自定义页面的 metadata 标签以进行 SEO 优化。

例如,如果你想在 <head> 标签中添加 <meta name="og:description" content="This is description">,你可以这样使用 frontmatter:

example.mdx
---
head:
  - - meta
    - name: og:title
      content: This is title
  - - meta
    - name: og:description
      content: This is description
---

Head 组件

如果你需要更复杂的 Head 定制,可以使用 Rspress 提供的 Head 组件 在页面或布局组件中动态设置 Head 标签。

Rsbuild html.tags 配置

通过 builderConfig.html.tags,你可以向 HTML 中注入自定义内容,比如添加统计代码、脚本或样式:

rspress.config.ts
import { defineConfig } from '@rspress/core';

export default defineConfig({
  builderConfig: {
    html: {
      tags: [
        {
          tag: 'script',
          attrs: {
            src: 'https://cdn.example.com/analytics.js',
          },
        },
      ],
    },
  },
});

更多配置详情请参考 Rsbuild html.tags 文档

与 Rspress head 配置的区别
  • Rspress head 配置:可以获取路由相关信息,支持根据不同页面动态设置 head 标签
  • Rsbuild html.tags:是构建时的静态配置,适用于全局统一的标签注入(如统计代码)

如果需要根据页面路由动态调整 head 内容,请使用 全局 head 配置Head 组件