靜態資源
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、Favicons 和其他
此資料夾也適用於 robots.txt
、favicon.ico
、Google 網站驗證和任何其他靜態檔案(包括 .html
)。但請確保不要讓靜態檔案與 pages/
目錄中的檔案同名,因為這會導致錯誤。閱讀更多。
小提示
- 目錄必須命名為
public
。名稱無法變更,而且是唯一用於提供靜態資源的目錄。- 只有在 建置時 位於
public
目錄中的資源才會由 Next.js 提供。在請求時新增的檔案將無法使用。我們建議使用第三方服務,例如 Vercel Blob 以進行持久性檔案儲存。
這有幫助嗎?