尝试在 nextJS 中添加外部本地字体时出错

Dap*_*ire 3 javascript fonts next.js

我正在尝试将本地字体添加到我的 NextJS + TailwindCSS 项目中。我已在 public/fonts 文件夹中添加了字体,并且正在关注文档:

这是我的代码

import localFont from '@next/font/local'
const inter = Inter({
    subsets: ['latin'],
})

const recoleta = localFont({
    src: 'fonts/Recoleta-Regular.ttf',
    fontFamily: 'Recoleta',
})
Run Code Online (Sandbox Code Playgroud)

我从终端收到此错误。

我需要有关添加哪个文件夹或如何完美配置它的帮助。

Module not found: Can't resolve './fonts/Recoleta-Regular.ttf'


Run Code Online (Sandbox Code Playgroud)

bra*_*ade 6

出现此错误并通过这样的设置解决了问题。使用https://nextjs.org/docs/api-reference/next/font#src寻求帮助。使用应用程序文件夹。

页面.tsx:

import CustomFont from '@next/font/local'

const cfont = CustomFont({
  src: '../public/fonts/cfont.ttf',
  variable: '--font-cfont',
})

export default function Home() {
  return (
    <div className={`${cfont.variable}`}>
      <div className="font-cfont">
        Test
      </div>
    </div>
  )
}


Run Code Online (Sandbox Code Playgroud)

tailwind.config.js:


const { fontFamily } = require('tailwindcss/defaultTheme')

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    "./app/**/*.{js,ts,jsx,tsx}",
    "./pages/**/*.{js,ts,jsx,tsx}",
    "./components/**/*.{js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {
      fontFamily: {
        cfont: ['var(--font-cfont)', ...fontFamily.sans],
      },
    },
  },
  plugins: [],
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么我们不能使用“/fonts/cfont.ttf”来引用公共文件夹,就像它在图像文档中告诉我们的那样? (2认同)