Capítulo 126 de 456

public

Core Idea

A pasta public na raiz do projeto serve arquivos estáticos (imagens, etc.) referenciáveis a partir da base URL /.

Key Concepts

  • Path direto: public/avatars/me.png fica acessível em /avatars/me.png.
  • Cache padrão: Next.js não pode cachear com segurança arquivos de public porque podem mudar; header aplicado é Cache-Control: public, max-age=0.
  • Metadata especial: robots.txt, favicon.ico etc devem usar as convenções de metadata files dentro de app, não a pasta public.

Code Examples

import Image from 'next/image'

export function Avatar({ id, alt }) {
  return <Image src={`/avatars/${id}.png`} alt={alt} width="64" height="64" />
}
  • O que demonstra: referência a um asset estático de public via next/image.

Anti-patterns

  • Colocar robots.txt/favicon.ico só em public esperando otimização: use os metadata file conventions (app/robots.txt, app/favicon.ico) para comportamento gerenciado pelo Next.js.

Key Takeaways

  1. Todo arquivo em public é servido literalmente a partir de /.
  2. Não espere cache agressivo automático nesses arquivos; o header padrão é max-age=0.
  3. Para arquivos de metadata (favicon, robots, sitemap), prefira as convenções especiais em vez de public.

Connects To

  • favicon, icon, and apple-icon: convenção de metadata file para ícones gerenciados pelo Next.js.
  • robots.txt / sitemap.xml: convenções de metadata file equivalentes para SEO.