Статические ресурсы в директории `public`
Next.js может обслуживать статические файлы, такие как изображения, в папке public
в корневой директории. Файлы внутри public
могут затем ссылаться в вашем коде, начиная с базового URL (/
).
Например, файл public/avatars/me.png
можно просмотреть, перейдя по пути /avatars/me.png
. Код для отображения этого изображения может выглядеть так:
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" />
}
Кэширование
Next.js не может безопасно кэшировать ресурсы в папке public
, так как они могут изменяться. Применяемые заголовки кэширования по умолчанию:
Cache-Control: public, max-age=0
Robots, Favicons и другие файлы
Для статических метаданных файлов, таких как robots.txt
, favicon.ico
и т.д., вы должны использовать специальные файлы метаданных внутри папки app
.
Полезно знать:
- Директория должна называться
public
. Это имя нельзя изменить, и это единственная директория, используемая для обслуживания статических ресурсов.- Только ресурсы, находящиеся в директории
public
во время сборки, будут обслуживаться Next.js. Файлы, добавленные во время запроса, не будут доступны. Мы рекомендуем использовать сторонние сервисы, такие как Vercel Blob, для постоянного хранения файлов.