NextJS 14 next/font/google 字体无法在 Safari iOS 上运行

问题描述 投票:0回答:1

我正在尝试在我的 NextJS 项目中使用 Google Fonts,它在 Chrome、Firefox 和 Safari Mac 上运行良好。但在 Safari iOS 上,它默认为 Times New Roman。

这是我在产品中的代码:

// layout.tsx

import { Jomolhari, Josefin_Slab, Josefin_Sans } from "next/font/google";

const jomolhari = Jomolhari({
  weight: "400",
  subsets: ["latin"],
  variable: "--font-jomolhari",
  display: "swap",
});

const josefinSans = Josefin_Sans({
  subsets: ["latin"],
  variable: "--font-josefin-sans",
  display: "swap",
});

const josefinSlab = Josefin_Slab({
  subsets: ["latin"],

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html
      className={`${jomolhari.variable} ${josefinSans.variable} ${josefinSlab.variable}`}
      lang="en"
    >
      <body className={josefinSlab.className}>
        {children}
      </body>
    </html>
    );
  }

});

我尝试过其他解决方案,例如下载字体和使用 localFont()。还在 global.css 上使用 @font-face。或者甚至通过 global.css 上的 url 远程获取字体。

我意识到 Safari 使使用字体变得更加困难,但一定有办法,我确信其他人已经解决了这个问题。

提前感谢您的帮助。我将继续尝试寻找解决方案,如果找到,我将更新这篇文章。

reactjs fonts mobile-safari google-fonts next.js14
1个回答
0
投票

您需要添加:

  • 布局类名字符串中的后备

    className={`${inter.variable} font-sans ${serif.variable} font-serif ${mono.variable} font-mono

  • tailwind 配置文件中扩展 fontFamily 属性中的变量。

    字体家族:{ sans: ["var(--inter)"], 衬线:[“var(--instrument)”], 单声道:[“var(--roboto-mono)”], }

来自 Vercel 的 Lee 的这段视频对此进行了解释,按照视频操作就可以了,我也遇到了同样的问题!

https://www.youtube.com/watch?v=L8_98i_bMMA

© www.soinside.com 2019 - 2024. All rights reserved.