Next.js 14 app router는 12와다르게 _document를 가지지 않으며 root layout에서 설정을 해야한다.
따라서 주로
둘 다 별도의 설치 없이 import 해오면 된다.
나는 localFont 방식을 선호 하며 해당 방식이 구글링에서 찾기 힘들기에 localFont로 글을 작성한다.
import type { Metadata } from "next";
import "./globals.css";
import Header from "@/components/common/layout/Header";
import Footer from "@/components/common/layout/Footer";
import { Provider } from "jotai";
import Spinner from "@/components/common/modal/Spinner";
import localFont from "next/font/local";
const suit = localFont({
src: [
{
path: "../../public/font/SUIT.woff2",
weight: "500",
style: "normal",
},
],
});
export const metadata: Metadata = {
title: "Meta title",
description: "meta description",
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="ko">
<body className={suit.className}>
<Provider>
<Header />
{children}
<Footer />
</Provider>
</body>
</html>
);
}
아래 코드와 같이
const suit = localFont({
src: [
{
path: "../../public/font/SUIT.woff2",
weight: "500",
style: "normal",
},
],
});
라는 변수를 작성 후
<body className={suit.className}>
body 태그에 등록만 해주면 끝난다.
폰트는 /public/font/ 경로에 작성을 저장해줬다.
import 방식을 채택하지않고, 폰트 파일로 저장하는 이유는 사파리, 파이어폭스 등 브라우저에서 폰트의 최적화를 위해서이다.