页面元数据
管理面板中的每个页面都会自动接收动态生成的元数据,这些数据来源于实时文档内容、用户当前语言环境等信息。这包括页面标题、描述、og:image 等,且无需额外配置。
元数据可在根级别完全配置,并向下级联应用到各个集合(collection)、文档和自定义视图。这使您能够精确控制任何页面的元数据,同时提供合理的默认值。
所有元数据都会被注入到 Next.js 的 generateMetadata
函数中,用于生成管理面板页面的 <head>
部分。Payload 暴露了 Next.js 中所有可用的元数据选项。
在管理面板中,元数据可以在以下层级进行自定义:
所有这些类型的元数据都采用相似的结构,仅在根级别存在一些关键差异。要自定义元数据,请参考可用作用域列表。确定与您要实现目标对应的作用域,然后在 Payload 配置中相应地编写元数据。
根级元数据
根级元数据(Root Metadata)是应用于 Admin Panel 中所有页面的元数据。在这里你可以控制每个页面标题的后缀、浏览器标签页显示的 favicon,以及在社交媒体上分享 Admin Panel 时使用的 Open Graph 数据。
要自定义根级元数据,请在 Payload Config 中使用 admin.meta
键:
{
// ...
admin: {
// highlight-start
meta: {
// highlight-end
title: '我的管理面板',
description: '世界上最好的管理面板',
icons: [
{
rel: 'icon',
type: 'image/png',
url: '/favicon.png',
},
],
},
},
}
根级元数据支持以下配置选项:
Key | Type | Description |
---|---|---|
defaultOGImageType | dynamic (默认), static , 或 off | 使用的默认 OG 图片类型。设置为 dynamic 时,Payload 会使用 Next.js 图片生成功能创建包含页面标题的图片。设置为 static 时,Payload 会使用 defaultOGImage URL。设置为 off 时,Payload 不会生成 OG 图片。 |
titleSuffix | string | 附加在每个页面标题末尾的后缀。默认为 "- Payload"。 |
[keyof Metadata] | unknown | Next.js 在 generateMetadata 函数中支持的其他任何属性。更多详情。 |
提醒: 这些是 Admin Panel 的_根级_选项。你还可以通过各自的配置在 Collection、 Global 和文档级别自定义元数据。
图标配置
Icons Config 对应用于指定 Admin Panel 图标的 <link>
标签。icons
键是一个对象数组,每个对象代表一个单独的图标。图标通过 rel
属性进行区分,该属性指定了文档与图标之间的关系。
最常见的图标类型是 favicon,它显示在浏览器标签页上,由 rel
属性值为 icon
指定。其他常见图标类型包括 apple-touch-icon
(当 Admin Panel 保存到 Apple 设备主屏幕时使用)和 mask-icon
(Safari 浏览器用于遮罩 Admin Panel 图标)。
要自定义图标,请在 Payload Config 中使用 admin.meta.icons
属性:
{
// ...
admin: {
meta: {
// highlight-start
icons: [
// highlight-end
{
rel: 'icon',
type: 'image/png',
url: '/favicon.png',
},
{
rel: 'apple-touch-icon',
type: 'image/png',
url: '/apple-touch-icon.png',
},
],
},
},
}
有关所有可用图标选项的完整列表,请参阅 Next.js 文档。
Open Graph
Open Graph 元数据是一组用于控制 URL 在社交媒体平台上分享时如何显示的标签。Payload 会自动生成 Open Graph 元数据,但可以在根级别进行自定义。
要自定义 Open Graph 元数据,请在 Payload Config 中使用 admin.meta.openGraph
属性:
{
// ...
admin: {
meta: {
// highlight-start
openGraph: {
// highlight-end
description: '世界上最好的管理面板',
images: [
{
url: 'https://example.com/image.jpg',
width: 800,
height: 600,
},
],
siteName: 'Payload',
title: '我的管理面板',
},
},
},
}
有关所有可用的 Open Graph 选项的完整列表,请参阅 Next.js 文档。
Robots
设置 robots
属性可以控制管理面板 <head>
中渲染的 robots
元标签。这可用于控制搜索引擎如何索引页面并在搜索结果中显示它们。
默认情况下,管理面板设置为阻止搜索引擎索引其中的页面。
要自定义 Robots 配置,请在 Payload Config 中使用 admin.meta.robots
属性:
{
// ...
admin: {
meta: {
// highlight-start
robots: 'noindex, nofollow',
// highlight-end
},
},
}
有关所有可用的 Robots 选项的完整列表,请参阅 Next.js 文档。
防止爬取
虽然通过 admin.meta.robots
设置 meta 标签可以阻止搜索引擎 索引 网页,但这并不能阻止它们 爬取 这些页面。
要完全阻止页面被爬取,请在根目录下添加 robots.txt
文件:
User-agent: *
Disallow: /admin/
注意: 如果你通过 config.routes
自定义了 Admin Panel 的路径,
请确保更新 Disallow
指令以匹配你的自定义路径。
集合元数据
Collection Metadata 是应用于 Admin Panel 中任何给定 Collection 内所有页面的元数据。这些元数据用于自定义特定 Collection 内所有视图的标题和描述,除非被视图本身覆盖。
要自定义 Collection Metadata,请在 Collection Config 中使用 admin.meta
键:
import type { CollectionConfig } from 'payload'
export const MyCollection: CollectionConfig = {
// ...
admin: {
// highlight-start
meta: {
// highlight-end
title: 'My Collection',
description: 'The best collection in the world',
},
},
}
Collection Meta 配置与 Root Metadata 配置具有相同的选项。
全局元数据
Global Metadata 是应用于 Admin Panel 中任何给定 Global 内所有页面的元数据。这些元数据用于自定义特定 Global 内所有视图的标题和描述,除非被视图本身覆盖。
要自定义 Global Metadata,请在 Global Config 中使用 admin.meta
键:
import { GlobalConfig } from 'payload'
export const MyGlobal: GlobalConfig = {
// ...
admin: {
// highlight-start
meta: {
// highlight-end
title: 'My Global',
description: 'The best admin panel in the world',
},
},
}
Global Meta 配置与 Root Metadata 配置具有相同的选项。
视图元数据
视图元数据(View Metadata)是应用于 Admin Panel 中特定视图的元数据。这些元数据用于自定义特定视图的标题和描述,会覆盖在根层级、集合层级或全局层级设置的任何元数据。
要自定义视图元数据,可以在视图配置中使用 meta
键:
{
// ...
admin: {
views: {
dashboard: {
// highlight-start
meta: {
// highlight-end
title: '我的仪表板',
description: '世界上最好的仪表板',
}
},
},
},
}