You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Next.js v13.2项目中添加Material Symbols图标?

在Next.js 13.2中正确添加Material Symbols图标

方法一:使用App Router的Metadata API(推荐)

在app/layout.tsx中通过Metadata对象管理资源链接,这是Next.js 13 App Router的标准做法:

import type { Metadata } from 'next';

// 定义站点元数据
export const metadata: Metadata = {
  title: 'Project Name',
  links: [
    {
      rel: 'stylesheet',
      href: 'https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=optional',
    },
  ],
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="zh-CN">
      <body>{children}</body>
    </html>
  );
}

方法二:修正head.tsx的写法

如果你仍想使用head.tsx,需要移除重复的precedence属性并确保标签正确闭合:

// app/head.tsx
export default function Head() {
  return (
    <>
      <title>Project Name</title>
      <link
        href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=optional"
        rel="stylesheet"
      />
    </>
  );
}

问题原因说明

你之前的代码中重复声明了precedence属性,这会导致Next.js处理样式链接时出现异常,无法正确加载Material Symbols的样式表,从而刷新页面时只显示图标名称而非图标本身。

验证使用

完成配置后,即可按预期方式使用图标:

<span className="material-symbols-rounded">face</span>

内容的提问来源于stack exchange,提问作者Roman Mahotskyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:59:53