SEO炼金术(4)| Next.js SEO 全攻略

在上一篇文章 SEO炼金术(3)| 深入解析 SEO 关键要素 中,我们深入解析了 SEO 关键要素,包括 meta 标签、robots.txtcanonicalsitemap.xmlhreflang,并探讨了它们在搜索引擎优化(SEO)中的作用。然而,对于使用 Next.js 开发的网站,手动管理这些 SEO 相关的配置可能会非常繁琐。

幸运的是,Next.js 内置了丰富的 SEO 支持,能够自动化和简化这些优化过程。本文将全面介绍 Next.js 提供的 SEO 相关功能,并通过示例演示如何在 Next.js 项目中正确配置 metadatacanonicalrobots.txtsitemap.xmlhreflang,确保你的网站能够在搜索引擎中获得最佳表现。🚀


📌 1. Next.js 的 SEO 相关功能

Next.js 提供了多种 SEO 相关的工具,使开发者无需手动编写 HTML head 标签,而是通过 配置和 API 自动生成正确的 SEO 标记。

📌 Next.js SEO 主要功能概览

SEO 需求Next.js 提供的解决方案作用
标题 <title>meta标签metadata API设置页面标题、描述等
避免重复 URL(canonicalmetadata API (canonical 字段)规范化 URL,防止 SEO 权重分散
控制爬取与索引(robots.txtmeta robotsrobots.ts设定爬虫访问规则
**自动生成 sitemap.xml`sitemap.(xmljs
多语言 SEO(hreflangmetadataAPI (alternates)多语言优化,确保用户访问正确版本
Open Graph / Twitter MetametadataAPI (openGraph
/ twitter)
提高社交媒体分享效果

📌 2. 在 Next.js 中实现 SEO

2.1 内置 metadata API(元数据 API)

Next.js 13+ 引入了 metadata API,替代了 next/head,可以在 layout.tsxpage.tsx 中直接定义 SEO 相关的元数据。

示例

import type { Metadata } from 'next'

export const metadata: Metadata = {
  title: 'Next.js SEO Optimization',
  description: 'Learn how to optimize Next.js applications for SEO.',
  keywords: ['Next.js', 'SEO', 'optimization'],
  robots: {
    index: true, // 允许搜索引擎索引
    follow: true, // 允许搜索引擎跟踪链接
  },
  alternates: {
    canonical: 'https://example.com/seo',
  },
  openGraph: {
    title: 'Next.js SEO',
    description: 'A comprehensive guide to SEO in Next.js',
    url: 'https://example.com/seo',
    images: [
      {
        url: 'https://example.com/og-image.jpg',
        width: 1200,
        height: 630,
      },
    ],
    type: 'website',
  },
  twitter: {
    card: 'summary_large_image',
    title: 'Next.js SEO',
    description: 'A comprehensive guide to SEO in Next.js',
    images: ['https://example.com/twitter-card.jpg'],
  },
}

2.1.1详细字段解析

1️⃣ 标题相关

字段作用是否影响 SEO
title设置页面 <title>
标签
✅ 影响排名
title.default作为子路由的默认标题✅ 影响排名
title.template用于拼接标题(如 `%s网站名`)
title.absolute设定不受 title.template
影响的标题
✅ 影响排名

示例:

export const metadata: Metadata = {
  title: {
    template: '%s | My Website',
    default: 'My Website',
  },
}

输出

<title>My Page | My Website</title>

2️⃣页面描述

字段作用是否影响 SEO
description设置 <meta name="description">,用于搜索引擎结果页摘要✅ 影响搜索结果 CTR

示例:

export const metadata: Metadata = {
  description: 'Next.js SEO Best Practices',
}

输出

<meta name="description" content="Next.js SEO Best Practices" />

3️⃣关键词

字段作用是否影响 SEO
keywords设置 <meta name="keywords">,定义页面的关键词(部分搜索引擎已忽略)❌ 影响极小

示例:

export const metadata: Metadata = {
  keywords: ['Next.js', 'SEO', 'Optimization'],
}

输出

<meta name="keywords" content="Next.js, SEO, Optimization" />

4️⃣ 搜索引擎爬取策略

字段作用是否影响 SEO
robots控制搜索引擎的索引策略✅ 影响网页是否被收录

示例:

export const metadata: Metadata = {
  robots: {
    index: true,
    follow: true,
    noimageindex: false,
    googleBot: {
      index: true,
      follow: true,
      'max-image-preview': 'large',
    },
  },
}

输出

<meta name="robots" content="index, follow" />
<meta name="googlebot" content="index, follow, max-image-preview:large" />

5️⃣ 规范 URL(Canonical)

字段作用是否影响 SEO
alternates.canonical设置 <link rel="canonical">,避免重复内容问题✅ 影响页面权重

示例:

export const metadata: Metadata = {
  alternates: {
    canonical: 'https://example.com/seo',
  },
}

输出

<link rel="canonical" href="https://example.com/seo" />

6️⃣ Open Graph & Twitter 预览

字段作用是否影响 SEO
openGraph定义 Facebook、LinkedIn 等社交媒体的 Open Graph 数据✅ 增强分享体验
twitter定义 Twitter/X 分享预览✅ 增强分享体验

示例:

export const metadata: Metadata = {
  openGraph: {
    title: 'Next.js SEO',
    description: 'A guide to SEO in Next.js',
    url: 'https://example.com/seo',
    images: [
      { url: 'https://example.com/og-image.jpg', width: 1200, height: 630 },
    ],
    type: 'website',
  },
  twitter: {
    card: 'summary_large_image',
    title: 'Next.js SEO',
    description: 'A guide to SEO in Next.js',
    images: ['https://example.com/twitter-card.jpg'],
  },
}

输出

<meta property="og:title" content="Next.js SEO" />
<meta property="og:description" content="A guide to SEO in Next.js" />
<meta property="og:image" content="https://example.com/og-image.jpg" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Next.js SEO" />
<meta name="twitter:image" content="https://example.com/twitter-card.jpg" />

7️⃣ 其他 SEO 相关元数据

字段作用是否影响 SEO
metadataBase设定 URL 前缀,方便定义绝对路径的 metadata✅ 影响 URL 结构
icons网站图标(favicon、Apple Touch Icon 等)✅ 影响分享体验
manifest设置 Web App Manifest 文件❌ 仅影响 PWA
appleWebApp定义 Apple Web App 相关设置❌ 仅影响 iOS 设备
appLinks定义 Android/iOS App 关联链接❌ 仅影响 App 跳转
facebook设置 Facebook App ID 或管理员 ID❌ 仅影响 Facebook
verification用于 Google、Yandex、Yahoo 站点验证❌ 仅影响站点所有权认证

2.1.2 Metadata API 最佳实践

默认在 layout.tsx 中定义 metadata,以便所有子页面继承默认值。
子页面可以覆盖 titledescription,确保每个页面唯一性。
使用 metadataBase 设定 URL 前缀,简化 canonicalog:image 配置。
**openGraphtwitter 提升社交媒体分享体验
,增加流量入口。
✅ **如果页面是动态的,使用 generateMetadata() 以根据 params 生成动态 title


2.2 生成 robots.txt 文件

在 Next.js 中,你可以 **手动添加robots.txt静态文件,或者 **动态生成robots.txt 以控制爬虫的抓取行为。Next.js 提供了一种 更智能 的方式,允许我们通过 robots.ts 文件 动态生成 规则,使 SEO 维护更加灵活。


2.2.1 使用静态 robots.txt

如果你的网站 不需要动态调整爬虫规则,可以直接在 app/ 目录下创建 robots.txt静态文件,这样 Next.js 会自动提供该文件,不需要额外的代码。

📌 创建 app/robots.txt

User-Agent: *
Allow: /
Disallow: /private/
Sitemap: https://example.com/sitemap.xml

📌 访问 https://example.com/robots.txt,你会看到:

User-Agent: *
Allow: /
Disallow: /private/
Sitemap: https://example.com/sitemap.xml

✅ 适用场景:

  • 规则固定,不会根据环境或内容变化。
  • 适用于小型网站,规则简单且不会变动。

🚨 但如果你需要动态管理爬虫规则,比如针对不同环境(开发/生产),或者对特定 URL 进行调整,就需要使用动态生成的方法。


2.2.2 通过 robots.ts 动态生成 robots.txt

Next.js 支持动态生成robots.txt,通过 app/robots.tsrobots.txt 自动适配不同环境。

📌步骤:在 app/robots.ts 中创建动态 robots.txt

import type { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      { userAgent: '*', allow: '/' }, // 允许所有爬虫访问整个网站
      { userAgent: 'Googlebot', disallow: '/private/' }, // Googlebot 不能访问 /private/
    ],
    sitemap: 'https://example.com/sitemap.xml', // 指定 sitemap 位置
  }
}

📌 访问 https://example.com/robots.txt,你会看到:

User-Agent: *
Allow: /
User-Agent: Googlebot
Disallow: /private/
Sitemap: https://example.com/sitemap.xml

robots.ts 作用

  • 动态生成 robots.txt,自动适配不同环境。
  • 支持不同爬虫设置不同规则(如 GooglebotBingbot)。
  • 无需手动维护 robots.txt 文件,防止因修改错误导致 SEO 受损。
  • 自动缓存,提高性能。

2.2.3 robots.ts 的存放位置

  • 需要 **手动创建app/robots.ts,它不会默认存在。
  • robots.ts 必须放在 app/ 目录下的根路径**,保证 https://example.com/robots.txt 能够正确访问。
  • ⚠️ 注意:如果 robots.txtrobots.ts 同时存在,Next.js 只会使用 robots.txt(静态文件优先)。

2.2.4 robots.ts 高级用法

如果你需要 对不同搜索引擎设置不同规则,可以 传递数组 让多个爬虫遵循不同的规则。

📌 示例:针对不同搜索引擎设置不同的爬取规则

import type { MetadataRoute } from 'next'

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      {
        userAgent: 'Googlebot', // 仅针对 Googlebot
        allow: ['/'], // 允许访问所有页面
        disallow: ['/private/'], // 禁止访问 /private/
      },
      {
        userAgent: ['Applebot', 'Bingbot'], // 适用于 Applebot 和 Bingbot
        disallow: ['/'], // 禁止访问所有页面
      },
    ],
    sitemap: 'https://example.com/sitemap.xml',
  }
}

📌访问 https://example.com/robots.txt,你会看到:

User-Agent: Googlebot
Allow: /
Disallow: /private/

User-Agent: Applebot
Disallow: /

User-Agent: Bingbot
Disallow: /

Sitemap: https://example.com/sitemap.xml

适用场景

  • 你希望 不同搜索引擎有不同的爬取规则
  • 你想 屏蔽某些爬虫(如 Applebot、Bingbot)。
  • 你希望 Googlebot 访问全部内容,但屏蔽 /private/ 目录

2.2.5 robots.ts 的完整规则

Next.js 的 robots.ts 支持以下参数:

type Robots = {
  rules:
  | {
    userAgent?: string | string[]
    allow?: string | string[]
    disallow?: string | string[]
    crawlDelay?: number
  }
  | Array<{
    userAgent: string | string[]
    allow?: string | string[]
    disallow?: string | string[]
    crawlDelay?: number
  }>
  sitemap?: string | string[]
  host?: string
}

📌可选参数

参数作用
userAgent指定爬虫(如 GooglebotBingbot),*代表所有爬虫
allow允许爬取的路径(如 /表示所有路径)
disallow禁止爬取的路径(如 /private/
sitemap指定站点地图的 URL
crawlDelay设置爬取延迟(秒)
host指定主机(如 https://example.com

📌示例:完整 robots.ts

export default function robots(): MetadataRoute.Robots {
  return {
    rules: [
      { userAgent: '*', allow: '/' }, // 允许所有爬虫访问整个网站
      { userAgent: 'Googlebot', disallow: ['/private/'], crawlDelay: 10 }, // Googlebot 禁止访问 /private/,并设置爬取间隔 10 秒
    ],
    sitemap: ['https://example.com/sitemap.xml'],
    host: 'https://example.com',
  }
}

📌 访问 https://example.com/robots.txt,你会看到:

User-Agent: *
Allow: /

User-Agent: Googlebot
Disallow: /private/
Crawl-Delay: 10

Sitemap: https://example.com/sitemap.xml
Host: https://example.com

适用场景

  • 你希望 Googlebot 爬取速度较慢,防止服务器压力过大。
  • 你有 多个 sitemap.xml 文件,希望统一管理。
  • 你希望 为网站设置主机 URL,提高 SEO 规范性。

2.3 生成 sitemap.xml

在 SEO 优化中,sitemap.xml 站点地图能够帮助搜索引擎更快地发现并索引网站上的重要页面。Next.js 允许 **手动添加sitemap.xml 文件,或者通过 sitemap.ts自动生成 站点地图,从而大大简化维护工作。


2.3.1 使用静态 sitemap.xml

如果你的网站页面较少,并且 URL 结构比较稳定,可以 手动创建 sitemap.xml 文件,然后放置在 app/ 目录下,Next.js 会直接提供该文件。

📌 **创建 app/sitemap.xml

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com</loc>
    <lastmod>2023-01-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/blog</loc>
    <lastmod>2023-01-01</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

📌 访问 https://example.com/sitemap.xml,你会看到:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com</loc>
    <lastmod>2023-01-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/blog</loc>
    <lastmod>2023-01-01</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

适用场景

  • 小型网站,页面数量少,URL 结构不会经常变化。
  • 你希望**手动控制 sitemap.xml,无需额外代码逻辑。
  • 你不需要自动更新 lastmod(页面最后更新时间)。

🚨 但如果你的网站页面较多、结构复杂,或者经常有新页面上线,建议使用动态生成 sitemap.xml 的方式。


2.3.2 通过 sitemap.ts 动态生成 sitemap.xml

Next.js 允许 自动生成 sitemap.xml,只需创建 sitemap.ts 文件,即可根据动态路由生成站点地图。这种方法更加灵活,适用于 大型站点或频繁更新的内容

📌步骤:在 app/sitemap.ts 中创建 sitemap.xml

import type { MetadataRoute } from 'next'

export default function sitemap(): MetadataRoute.Sitemap {
  return [
    {
      url: 'https://example.com',
      lastModified: new Date(),
      changeFrequency: 'weekly',
      priority: 1.0,
    },
    {
      url: 'https://example.com/blog',
      lastModified: new Date(),
      changeFrequency: 'daily',
      priority: 0.8,
    },
  ]
}

📌 访问 https://example.com/sitemap.xml,你会看到:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com</loc>
    <lastmod>2023-01-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/blog</loc>
    <lastmod>2023-01-01</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>

sitemap.ts 作用

  • 自动更新 lastmod,确保搜索引擎知道页面最新更新时间。
  • 支持动态 URL(如博客文章、商品页等)。
  • 搜索引擎可以更快发现新页面,加快索引速度。
  • 无需手动维护 sitemap.xml 文件,降低出错风险。

2.3.3 sitemap.ts 的存放位置

  • 需要 手动创建app/sitemap.ts,默认不会自动生成。
  • sitemap.ts必须放在 app/ 目录下,确保可以通过 https://example.com/sitemap.xml 访问到。
  • ⚠️ 注意:如果 sitemap.xmlsitemap.ts 同时存在,Next.js 只会使用 sitemap.xml(静态文件优先)。

2.3.4 生成多语言 sitemap.xml

如果你的网站有 多个语言版本,可以在 sitemap.ts添加 alternates.languages 选项,告诉搜索引擎哪些 URL 代表不同语言版本。

📌示例:支持多语言的 sitemap.ts

import type { MetadataRoute } from 'next'

export default function sitemap(): MetadataRoute.Sitemap {
  return [
    {
      url: 'https://example.com',
      lastModified: new Date(),
      alternates: {
        languages: {
          'en': 'https://example.com/en',
          'de': 'https://example.com/de',
        },
      },
    },
    {
      url: 'https://example.com/about',
      lastModified: new Date(),
      alternates: {
        languages: {
          'en': 'https://example.com/en/about',
          'de': 'https://example.com/de/about',
        },
      },
    },
  ]
}

📌 访问 https://example.com/sitemap.xml,你会看到:

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://example.com</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de"/>
    <lastmod>2023-01-01</lastmod>
  </url>
  <url>
    <loc>https://example.com/about</loc>
    <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/about"/>
    <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/about"/>
    <lastmod>2023-01-01</lastmod>
  </url>
</urlset>

作用

  • 帮助搜索引擎正确索引不同语言版本的 URL
  • 避免重复内容问题canonical + hreflang)。
  • 自动维护多语言站点地图,无需手动管理

2.3.5 生成大规模网站的 sitemap.xml

如果你的网站包含 大量页面(例如电商、博客、论坛等),建议 拆分 sitemap.xml,使用 generateSitemaps 方法

📌示例:为大规模站点生成多个 sitemap.xml

import type { MetadataRoute } from 'next'
import { BASE_URL } from '@/app/lib/constants'

export async function generateSitemaps() {
  return [{ id: 0 }, { id: 1 }, { id: 2 }]
}

export default async function sitemap({ id }: { id: number }): Promise<MetadataRoute.Sitemap> {
  const start = id * 50000
  const end = start + 50000
  const products = await getProducts(`SELECT id, date FROM products WHERE id BETWEEN ${start} AND ${end}`)

  return products.map((product) => ({
    url: `${BASE_URL}/product/${product.id}`,
    lastModified: product.date,
  }))
}

📌 访问 /product/sitemap/1.xml,你会看到部分站点地图。适用场景

  • 站点超过 50,000 个 URL(Google 单个 sitemap.xml 限制)。
  • 电商、博客、新闻类站点 需要拆分站点地图。

📌 3. Next.js 内置 sitemap.ts vs. next-sitemap

Next.js 提供了 内置 sitemap.ts 生成 sitemap.xml 的功能,但社区中也有专门的 next-sitemap 库用于生成站点地图。那么,这两者有什么区别?应该选择哪种方式呢?本文将深入对比它们的特点、适用场景和优缺点**。


3.1 Next.js 内置 sitemap.ts

📌 Next.js 13+ 提供的 sitemap.ts 是一种原生支持**的方式,可以在 app/sitemap.ts 文件中定义站点地图,并自动生成 sitemap.xml

特点

  • 基于 app/sitemap.ts:无需额外安装依赖,Next.js 原生支持
  • 动态生成:支持 **lastModified 自动更新时间。
  • 支持多语言 (hreflang) 和多 sitemap 结构。
  • 不需要手动执行命令访问 /sitemap.xml 即可获取站点地图

优点

  • 内置支持:不需要安装 next-sitemap,减少外部依赖。
  • 自动化:无需手动运行 npx 命令,每次访问 /sitemap.xml 都是最新的
  • 支持 hreflang:适用于多语言网站。

🚨 缺点

  • 功能较基础:不支持自动解析 nextpages 目录结构,需要手动添加 URL
  • 不适用于大型网站sitemap.ts 适用于小型/中型站点,但对于有 10w+ URL 的大站,性能可能有限。

3.2 next-sitemap

📌 next-sitemapNext.js 官方推荐的 sitemap.xml 生成工具,适用于大型项目,可自动爬取 pages/ 目录,批量生成 sitemap.xml

特点

  • 支持 SSR/SSG:可自动抓取 next.config.js 中的 pages/ 目录。
  • 支持 robots.txt 生成,无需手写。
  • 支持 sitemap index(多个 sitemap.xml 文件)。
  • 提供 next-sitemap.js 配置文件,可以批量管理 URL,无需手动维护 sitemap.ts

📌 安装 next-sitemap

npm install next-sitemap

📌 配置 next-sitemap.config.js

module.exports = {
  siteUrl: 'https://example.com', // 站点根路径
  generateRobotsTxt: true, // 自动生成 robots.txt
  sitemapSize: 5000, // 拆分 sitemap.xml
  changefreq: 'daily', // 默认所有页面更新时间
  priority: 0.8, // 默认优先级
  exclude: ['/admin', '/private'], // 排除不想被索引的页面
}

📌 运行命令,生成 sitemap.xml

npx next-sitemap

📌 生成的 sitemap.xml

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.com/sitemap-0.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.com/sitemap-1.xml</loc>
  </sitemap>
</sitemapindex>

优点

  • 自动解析 pages 目录,无需手动维护 URL。
  • 支持 robots.txt,可自动生成并配置。
  • 适用于大规模网站,可以拆分多个 sitemap.xml,每个最多 50,000 个 URL。
  • 支持 next export,可用于静态站点。

🚨 缺点

  • 需要手动执行 npx next-sitemap 以生成 sitemap.xml,不像 sitemap.ts 那样是实时的。
  • 需要额外安装依赖,增加项目体积。

3.3 sitemap.ts vs. next-sitemap 对比

特性**Next.js sitemap.ts**next-sitemap
是否需要安装依赖❌ 不需要✅ 需要 (next-sitemap)
是否自动更新✅ 实时生成❌ 需要 npx运行
是否支持 robots.txt❌ 需手动写 robots.ts✅ 自动生成
是否支持 hreflang✅ 支持✅ 支持
是否适合大站点✅ 可拆分多个 sitemap✅ 更适合,自动拆分
是否支持 next export❌ 仅支持 app/目录✅ 适用于 pages/目录
是否支持 sitemap index✅ 通过 generateSitemaps✅ 自动拆分

推荐选择

  • 如果你的网站规模较小(小于 50,000 个 URL),并且在 app/ 目录下开发,建议使用 sitemap.ts
  • 如果你的网站是一个大型站点(超过 50,000 个 URL),或者使用 pages/ 目录,建议使用 next-sitemap,可以自动解析目录并生成多个 sitemap.xml
  • 如果你还需要 robots.txt 自动生成,next-sitemap 是更好的选择

📌 4. 总结

Next.js 提供了 强大的内置 SEO 工具,简化了 SEO 配置:

  • metadata API** 轻松设置 <title>metacanonical
  • robots.ts 自动生成 robots.txt,控制爬虫行为
  • sitemap.ts 生成 sitemap.xml,加快搜索引擎索引
  • 多语言 hreflang 轻松管理,提高全球搜索排名

利用 Next.js,你可以 更轻松地管理 SEO,提升网站在搜索引擎中的可见度!🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/978736.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2月27(信息差)

&#x1f30d;雷军超钟睒睒登顶中国首富 身家近4400亿元 &#x1f384;全球AI大混战升温&#xff01;超越Sora的阿里万相大模型开源 家用显卡都能跑 ✨小米15 Ultra、小米SU7 Ultra定档2月27日 雷军宣布&#xff1a;向超高端进发 1.刚刚&#xff01;DeepSeek硬核发布&#xff…

【Linux】文件系统深度解析:从基础到高级应用

&#x1f3ac; 个人主页&#xff1a;努力可抵万难 &#x1f4d6; 个人专栏&#xff1a;《C语法》《Linux系列》《数据结构及算法》 ⛰️ 路虽远&#xff0c;行则将至 目录 &#x1f4da;一、引言&#xff1a;文件系统的核心作用与历史演进 &#x1f4d6;1.文件系统的定义与功…

《Effective Objective-C》阅读笔记(中)

目录 接口与API设计 用前缀避免命名空间冲突 提供“全能初始化方法” 实现description方法 尽量使用不可变对象 使用清晰而协调的命名方式 方法命名 ​编辑类与协议命名 为私有方法名加前缀 理解OC错误模型 理解NSCopying协议 协议与分类 通过委托与数据源协议进行…

MongoDB—(一主、一从、一仲裁)副本集搭建

MongoDB集群介绍&#xff1a; MongoDB 副本集是由多个MongoDB实例组成的集群&#xff0c;其中包含一个主节点&#xff08;Primary&#xff09;和多个从节点&#xff08;Secondary&#xff09;&#xff0c;用于提供数据冗余和高可用性。以下是搭建 MongoDB 副本集的详细步骤&am…

【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.3.1单节点安装(Docker与手动部署)

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 10分钟快速部署Elasticsearch单节点环境1. 系统环境要求1.1 硬件配置推荐1.2 软件依赖 2. Docker部署方案2.1 部署流程2.2 参数说明2.3 性能优化建议 3. 手动部署方案3.1 安…

Rt-thread源码剖析(1)——内核对象

前言 该系列基于rtthread-nano的内核源码&#xff0c;来研究RTOS的底层逻辑&#xff0c;本文介绍RTT的内核对象&#xff0c;对于其他RTOS来说也可供参考&#xff0c;万变不离其宗&#xff0c;大家都是互相借鉴&#xff0c;实现不会差太多。 内核对象容器 首先要明确的一点是什…

html css js网页制作成品——HTML+CSS甜品店网页设计(5页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…

Trae根据原型设计稿生成微信小程序密码输入框的踩坑记录

一、需求描述 最近经常使用Trae生成一些小组件和功能代码&#xff08;对Trae赶兴趣的可以看之前的文章《TraeAi上手体验》&#xff09;&#xff0c;刚好在用uniapp开发微信小程序时需要开发一个输入密码的弹框组件&#xff0c;于是想用Trae来实现。原型设计稿如下&#xff1a;…

斩波放大器

目录 简介 自稳零斩波放大器 噪声 简介 双极性放大器的失调电压为25 μV&#xff0c;漂移为0.1 μV/C。斩波放大器尽管存在一些不利影 响&#xff0c;但可提供低于5 μV的失调电压&#xff0c;而且不会出现明显的失调漂移&#xff0c; 以下图1给出了基本的斩波放大器电路图。…

windows设置暂停更新时长

windows设置暂停更新时长 win11与win10修改注册表操作一致 &#xff0c;系统界面不同 1.打开注册表 2.在以下路径 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 右键新建 DWORD 32位值&#xff0c;名称为FlightSettingsMaxPauseDays 根据需求填写数…

DIALOGPT:大规模生成式预训练用于对话响应生成

摘要 我们提出了一个大规模、可调节的神经对话响应生成模型&#xff0c;DIALOGPT&#xff08;对话生成预训练变换器&#xff09;。该模型训练于从2005年至2017年间Reddit评论链中提取的1.47亿次类似对话的交流&#xff0c;DIALOGPT扩展了Hugging Face的PyTorch变换器&#xff…

Mac端不显示正常用户名,变成192的解决方法

今天打开终端&#xff0c;本应该显示机器名的&#xff0c;但是此时显示了192。 问题原因&#xff1a; 当路由器的DNS使用默认的 192.168.1.1 或 192.168.0.1 的时候 Terminal 里的计算机名 会变成 localhost。当路由器的DNS使用自定义的 例如 运营商的DNS 或者 公共DNS的时候 …

SD 卡无屏安装启动树莓派5

最近想用一下树莓派5&#xff0c;拿出来一看&#xff0c;是 Micro-HMDI 的接口&#xff0c;手头正好没有这个接口线&#xff0c;便研究如何在没有显示屏的情况下&#xff0c;安装启动树莓派。 一、使用 Raspberry Pi Imager 烧录 SD 卡 选择 Raspberry Pi Imager 来烧录 SD 卡…

Xlua 编译 Windows、UWP、Android、iOS 平台支持库

Xlua 编译 Windows、UWP、Android、iOS 平台支持库 Windows&#xff1a; 安装 Visual Studio&#xff08;推荐 2017 或更高版本&#xff09; 安装 CMake&#xff08;https://cmake.org/&#xff09; macOS&#xff1a; 安装 Xcode 和命令行工具 安装 CMake 检查 cmake 是否安…

npm : 无法加载文件 E:\ProgramFiles\Nodejs\npm.ps1,因为在此系统上禁止运行脚本。

这个错误是因为 Windows 系统的 PowerShell 执行策略 限制了脚本的运行。默认情况下&#xff0c;PowerShell 的执行策略是 Restricted&#xff0c;即禁止运行任何脚本。以下是解决该问题的步骤&#xff1a; 1. 检查当前执行策略 打开 PowerShell&#xff08;管理员权限&#x…

基于专利合作地址匹配的数据构建区域协同矩阵

文章目录 地区地址提取完成的处理代码 在专利合作申请表中&#xff0c;有多家公司合作申请。在专利权人地址中&#xff0c; 有多个公司的地址信息。故想利用这里多个地址。想用这里的地址来代表区域之间的专利合作情况代表区域之间的协同、协作情况。 下图是专利合作表的一部分…

若依vue plus环境搭建

继前面文章若依系统环境搭建记录-CSDN博客 把ruoyi vue plus也摸索了下。 作者是疯狂的狮子&#xff0c;dromara/RuoYi-Vue-Plus 初始化文档&#xff1a;项目初始化&#xff0c;环境搭建的视频&#xff1a;RuoYi-Vue-Plus 5.0 搭建与运行_哔哩哔哩_bilibili 上来就列出了一…

在ubuntu如何安装samba软件?

我们在开发过程中&#xff0c;经常修改代码&#xff0c;可以安装samba文件来实现&#xff0c;把ubuntu的存储空间指定为我们win上的一个磁盘&#xff0c;然后我们在或者磁盘里面创建.c文件&#xff0c;进行代码修改和编写。samba能将linux的文件目录直接映射到windows&#xff…

论文阅读笔记:Deep Face Recognition: A Survey

论文阅读笔记&#xff1a;Deep Face Recognition: A Survey 1 介绍2 总览2.1 人脸识别组件2.1.1 人脸处理2.1.2 深度特征提取2.1.3 基于深度特征的人脸对比 3 网络结构和损失函数3.1 判别损失函数的演化3.1.1 基于欧式距离的损失3.1.2 基于角度/余弦边距的损失3.1.3 Softmax损失…

使用 Polars 进行人工智能医疗数据分析(ICU数据基本测试篇)

引言 在医疗领域&#xff0c;数据就是生命的密码&#xff0c;每一个数据点都可能蕴含着拯救生命的关键信息。特别是在 ICU 这样的重症监护场景中&#xff0c;医生需要实时、准确地了解患者的病情变化&#xff0c;以便做出及时有效的治疗决策。而随着医疗技术的飞速发展&#x…