Next.js v15- Metadata

news/2024/12/22 15:39:47 标签: javascript, 开发语言, Next.js

概念

在 Web 开发中,Metadata提供有关网页的其他详细信息。元数据对访问页面的用户不可见。相反,它在幕后工作,嵌入到页面的 HTML 中,通常在<head>元素中。这些隐藏信息对于需要更好地了解您网页内容的搜索引擎和其他系统至关重要。

类型

  • Title:负责浏览器选项卡上显示的网页的标题。这对 SEO 至关重要,因为它可以帮助搜索引擎了解网页的内容。
<title>Page Title</title>
  • Description:提供网页内容的简要概述,通常显示在搜索引擎结果中
<meta name="description" content="A brief description of the page content." />
  • Keyword: 包括与网页内容相关的关键字,帮助搜索引擎为页面编制索引。
<meta name="keywords" content="keyword1, keyword2, keyword3" />
  • Open Graph: 增强了网页在社交媒体平台上共享时的表示方式,提供标题、描述和预览图像等信息。
<meta property="og:title" content="Title Here" />
<meta property="og:description" content="Description Here" />
<meta property="og:image" content="image_url_here" />

添加Metadata

Next.js 具有可用于定义应用程序元数据的Metadata API。有两种方法可以将Metadata添加到应用程序

  • Config-based:在 layout.js 或 page.js 文件中导出静态metadata对象或动态generateMetadata函数
  • File-based:Next.js具有一系列专门用于元数据的特殊文件:
    favicon.ico 、 apple-icon.jpg 和 icon.jpg :用于网站图标和图标
    opengraph-image.jpg和 twitter-image.jpg : 用于社交媒体图像
    robots.txt :提供搜索引擎抓取的说明
    sitemap.xml :提供有关网站结构的信息

您可以灵活地将这些文件用于静态Metadata,也可以在项目中以编程方式生成它们,使用这两个选项,Next.js 将自动生成页面的相关<head>元素。

应用

在根布局中,使用以下字段创建新metadata对象
/app/layout.tsx:

import { Metadata } from 'next';
 
export const metadata: Metadata = {
  title: 'Acme Dashboard',
  description: 'The official Next.js Course Dashboard, built with App Router.',
  metadataBase: new URL('https://next-learn-dashboard.vercel.sh'),
};
 
export default function RootLayout() {
  // ...
}

Next.js 会自动将标题和元数据添加到您的应用程序中。

如果您想为特定页面添加自定义标题,以通过向页面本身添加对象metadata来执行此操作。嵌套页面中的元数据将覆盖父页面中的元数据。
例如,在页面中/dashboard/invoices,您可以更新页面标题:
/app/dashboard/invoices/page.tsx

import { Metadata } from 'next';
 
export const metadata: Metadata = {
  title: 'Invoices | Acme Dashboard',
};

如果想在每个页面都有对应应用程序的标题,可以使用metadata对象中的title.template字段来定义页面标题的模板。此模板可以包含页面标题以及要包含的任何其他信息。
在根布局中,更新metadata对象以包含模板:

import { Metadata } from 'next';
 
export const metadata: Metadata = {
  title: {
    template: '%s | Acme Dashboard',
    default: 'Acme Dashboard',
  },
  description: 'The official Next.js Learn Dashboard built with App Router.',
  metadataBase: new URL('https://next-learn-dashboard.vercel.sh'),
};

在/dashboard/invoices页面中,可以添加页面标题

export const metadata: Metadata = {
  title: 'Invoices',
};

导航到页面/dashboard/invoices并检查<head>元素。您应该会看到页面标题为 Invoices | Acme Dashboard .


http://www.niftyadmin.cn/n/5795486.html

相关文章

我的2024年度总结

称着这个周末&#xff0c;写一篇2024年度总结&#xff0c;主要记录我过去一年的成长经历以及自己的一些收获。 过去一年的经历&#xff0c;可谓刻骨铭心&#xff0c;一个是24考研惨败&#xff0c;一个是毕设的准备&#xff0c;一个是省考的陪考&#xff0c;一个是找工作的焦虑…

C++_数据结构_详解二叉搜索树

✨✨ 欢迎大家来到小伞的大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C学习 小伞的主页&#xff1a;xiaosan_blog 1.二叉树搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&a…

积分管理系统的设计与实现【源码+文档】

目  录 摘  要 Abstract 引 言 1 第一章 绪论 1.1 课题研究背景 1.2 系统实现意义 1.3 本文主要工作及总体结构 2 第二章 系统开发环境及相关技术 2.1环境技术概述 2.1.1 B/S结构 2.1.2 JSP 2.1.3 JavaBean 3 第三章 系统需求分析 3.1 系统具体实现目标 3…

物联网:全面概述、架构、应用、仿真工具、挑战和未来方向

中文论文标题&#xff1a;物联网&#xff1a;全面概述、架构、应用、仿真工具、挑战和未来方向 英文论文标题&#xff1a;Internet of Things: a comprehensive overview, architectures, applications, simulation tools, challenges and future directions 作者信息&#x…

STM32 高级 物联网通信之CAN通讯

目录 CAN通讯介绍 物理层 协议层 CAN的帧(报文)种类 1 数据帧(发送单元->接受单元) 2 远程帧(接受单元->发送单元) 3 错误帧(发送方发送数据错误会发送的状态帧) 4 过载帧(接收方放不下会发送到的状态帧) 5 帧间隔(状态) 数据帧介绍 远程帧介绍 C…

【贪心】力扣3218. 切蛋糕的最小总开销 I

有一个 m x n 大小的矩形蛋糕&#xff0c;需要切成 1 x 1 的小块。 给你整数 m &#xff0c;n 和两个数组&#xff1a; horizontalCut 的大小为 m - 1 &#xff0c;其中 horizontalCut[i] 表示沿着水平线 i 切蛋糕的开销。 verticalCut 的大小为 n - 1 &#xff0c;其中 vert…

WeakAuras NES Script(lua)

WeakAuras NES Script 修星脚本字符串 脚本1&#xff1a;NES !WA:2!TMZFWXX1zDxVAs4siiRKiBN4eV(sTRKZ5Z6opYbhQQSoPtsxr(K8ENSJtS50(J3D7wV3UBF7E6hgmKOXdjKsgAvZFaPTtte0mD60XdCmmecDMKruyykDcplAZiGPfWtSsag6myGuOuq89EVDV9wPvKeGBM7U99EFVVVV33VFFB8Z2TJ8azYMlZj7Ur3QDR(…

VMWare 的克隆操作

零、碎碎念 VMWare 的这个克隆操作很简单&#xff0c;单拎出来成贴的目的是方便后续使用。 一、操作步骤 1.1、在“源”服务器上点右键&#xff0c;选择“管理--克隆” 1.2、选择“虚拟机的当前状态”为基础制作克隆&#xff0c;如下图所示&#xff0c;然后点击“下一页” 1.3、…