π λ¬Έμ μν©
μ¬μ΄λλ°μμ μλ νμ΄μ§λ‘ μ΄λ μ λͺ¨λ 404(Not Found) νμ΄μ§κ° νμλ¨.
- /home
- /prompts
- /community
- /library
κ° κ²½λ‘μ ν΄λΉνλ page.tsx νμΌμ λͺ¨λ μ‘΄μ¬νμΌλ,
λΈλΌμ°μ μμλ "μ΄ νμ΄μ§λ μ‘΄μ¬νμ§ μμ΅λλ€"κ° λ
ΈμΆλ¨.
π μμΈ λΆμ
app/(afterlogin) λΌμ°νΈ κ·Έλ£Ή νμμ layout.tsxκ° μ‘΄μ¬νμ§ μμ
Next.js App Routerμμ λΌμ°νΈ νΈλ¦¬κ° μ μμ μΌλ‘ ꡬμ±λμ§ μμ.
Next.jsλ νμ νμ΄μ§ μ κ·Ό μ λ€μ μμλ‘ layoutμ νμν¨:
app/layout.tsx
app/(afterlogin)/layout.tsx β (λλ½)
app/(afterlogin)/[route]/page.tsx
μ€κ° layoutμ΄ μμ κ²½μ° ν΄λΉ λΌμ°νΈλ Not Foundλ‘ μ²λ¦¬λ¨.
β
ν΄κ²° λ°©λ²
app/(afterlogin)/layout.tsx νμΌμ μΆκ°νμ¬
afterlogin μμμ κ³΅ν΅ λ μ΄μμ(μ¬μ΄λλ°)μ μ μν¨.
// app/(afterlogin)/layout.tsx
import Sidebar from "@/components/sidebar/Sidebar";
export default function AfterLoginLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<div className="flex min-h-screen">
<Sidebar />
<main className="flex-1">{children}</main>
</div>
);
}
****
π λ¬Έμ μν©
μ¬μ΄λλ°μμ μλ νμ΄μ§λ‘ μ΄λ μ λͺ¨λ 404(Not Found) νμ΄μ§κ° νμλ¨.
κ° κ²½λ‘μ ν΄λΉνλ
page.tsxνμΌμ λͺ¨λ μ‘΄μ¬νμΌλ,λΈλΌμ°μ μμλ "μ΄ νμ΄μ§λ μ‘΄μ¬νμ§ μμ΅λλ€"κ° λ ΈμΆλ¨.
π μμΈ λΆμ
app/(afterlogin)λΌμ°νΈ κ·Έλ£Ή νμμlayout.tsxκ° μ‘΄μ¬νμ§ μμNext.js App Routerμμ λΌμ°νΈ νΈλ¦¬κ° μ μμ μΌλ‘ ꡬμ±λμ§ μμ.
Next.jsλ νμ νμ΄μ§ μ κ·Ό μ λ€μ μμλ‘ layoutμ νμν¨:
app/layout.tsxapp/(afterlogin)/layout.tsxβ (λλ½)app/(afterlogin)/[route]/page.tsxμ€κ° layoutμ΄ μμ κ²½μ° ν΄λΉ λΌμ°νΈλ Not Foundλ‘ μ²λ¦¬λ¨.
β ν΄κ²° λ°©λ²
app/(afterlogin)/layout.tsxνμΌμ μΆκ°νμ¬afterlogin μμμ κ³΅ν΅ λ μ΄μμ(μ¬μ΄λλ°)μ μ μν¨.