Post

Nextjs-Optimizing(4) - Static Assets(๋ฒˆ์—ญ)

๐Ÿ“Œ์‹œ์ž‘ํ•˜๋ฉฐ

15.2.2 ๊ณต์‹๋ฌธ์„œ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ

๊ณ„์†ํ•ด์„œ Static Assets์— ๊ด€ํ•œ ๋‚ด์šฉ์„ ์•Œ์•„๋ณด์ž.

1๏ธโƒฃ Static Assets in public

Next.js๋Š” ์ด๋ฏธ์ง€ ๊ฐ™์€ static ํŒŒ์ผ์„ root์˜ public์ด๋ผ๋Š” ํด๋” ์•„๋ž˜์— ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด, ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ธฐ๋ณธ URL(/)๋กœ public ๋‚ด๋ถ€์˜ ํŒŒ์ผ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด public/avatars/me.png ํŒŒ์ผ์€ /avatars/me.png ๊ฒฝ๋กœ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

1
2
3
4
5
6
7
8
9
import Image from "next/image"

export function Avatar({ id, alt }) {
  return <Image src={`/avatars/${id}.png`} alt={alt} width="64" height="64" />
}

export function AvatarOfMe() {
  return <Avatar id="me" alt="A portrait of me" />
}

๐ŸงกCaching

Next.js๋Š” ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๊ธฐ์— public ํด๋”์˜ assets์„ ์•ˆ์ „ํ•˜๊ฒŒ ์บ์‹œํ•  ์ˆ˜ ์—†๋‹ค. ์ ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์บ์‹ฑ ํ—ค๋”๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

1
Cache-Control: public, max-age=0

๐Ÿ’›Robots, Favicons, and others

robots.txt, favicon.ico ๋“ฑ๊ณผ ๊ฐ™์€ static metadata ํŒŒ์ผ์˜ ๊ฒฝ์šฐ app ํด๋” ๋‚ด๋ถ€์˜ ํŠน์ˆ˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

โœจGood to know

  • ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„์€ public์ด์–ด์•ผ ํ•œ๋‹ค. ์ด ์ด๋ฆ„์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, static assets์„ ์ œ๊ณตํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์œ ์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ๋‹ค.
  • ๋นŒ๋“œ ์‹œ์ ์— public ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์—์…‹๋งŒ Next.js์—์„œ ์ œ๊ณต๋œ๋‹ค. ์š”์ฒญ ์‹œ์ ์— ์ถ”๊ฐ€๋œ ํŒŒ์ผ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์˜๊ตฌ์ ์•ˆ ํŒŒ์ผ ์ €์žฅ์†Œ์—๋Š” Vercel Blob๊ณผ ๊ฐ™์€ ํƒ€์‚ฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๐Ÿ—‚๏ธ์ฐธ๊ณ  ์‚ฌ์ดํŠธ

This post is licensed under CC BY 4.0 by the author.