跳至內容

靜態資源

Next.js 可以在根目錄下名為 public 的資料夾中提供靜態檔案,例如圖片。接著,您的程式碼可以從基底 URL (/) 開始參考 public 內的檔案。

例如,可以透過造訪 /avatars/me.png 路徑來檢視檔案 public/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.txtfavicon.ico、Google 網站驗證以及任何其他靜態檔案(包括 .html)。但請確保不要有名稱與 pages/ 目錄中的檔案相同的靜態檔案,因為這會導致錯誤。了解更多

須知

  • 目錄必須命名為 public。名稱不能更改,它是唯一用於提供靜態資源的目錄。
  • 只有在建置時位於 public 目錄中的資源才會由 Next.js 提供。在請求時新增的檔案將無法使用。我們建議使用第三方服務,例如 Vercel Blob 來進行永久檔案儲存。