public フォルダ
Next.jsでは、ルートディレクトリのpublic
というフォルダ内の画像などの静的ファイルを提供できます。public
内のファイルは、ベースURL(/
)から始まるコードで参照できます。
例えば、public/avatars/me.png
ファイルは、/avatars/me.png
パスにアクセスすることで表示できます。その画像を表示するコードは次のようになります:
avatar.js
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、ファビコン、その他
このフォルダはrobots.txt
、favicon.ico
、Google Site Verification、およびその他の静的ファイル(.html
を含む)にも役立ちます。ただし、pages/
ディレクトリ内のファイルと同じ名前の静的ファイルを持たないようにしてください。これはエラーの原因となります。詳細はこちら。