自訂錯誤頁面
404 頁面
404 頁面可能經常被存取。每次造訪都進行伺服器渲染 (SSR) 會增加 Next.js 伺服器的負載,可能導致成本上升和使用體驗變慢。
為避免上述問題,Next.js 預設提供靜態 404 頁面,無需新增任何額外檔案。
自訂 404 頁面
要建立自訂 404 頁面,你可以建立 pages/404.js
檔案。此檔案會在建置時靜態生成。
須知:如果你需要在建置時獲取資料,可以在這個頁面中使用
getStaticProps
。
500 頁面
每次造訪都進行伺服器渲染 (SSR) 錯誤頁面會增加回應錯誤的複雜度。為了幫助使用者盡快獲得錯誤回應,Next.js 預設提供靜態 500 頁面,無需新增任何額外檔案。
自訂 500 頁面
要自訂 500 頁面,你可以建立 pages/500.js
檔案。此檔案會在建置時靜態生成。
須知:如果你需要在建置時獲取資料,可以在這個頁面中使用
getStaticProps
。
更進階的錯誤頁面自訂
500 錯誤會由 Error
元件在客戶端和伺服器端處理。如果你想覆寫它,請定義 pages/_error.js
檔案並加入以下程式碼:
pages/_error.js
僅在生產環境中使用。在開發環境中,你會看到包含錯誤來源呼叫堆疊的錯誤訊息。
重用內建錯誤頁面
如果你想渲染內建的錯誤頁面,可以透過匯入 Error
元件來實現:
Error
元件也接受 title
屬性,如果你想在 statusCode
之外傳入文字訊息。
如果你有自訂的 Error
元件,請確保匯入的是該元件而非預設元件。next/error
匯出的是 Next.js 使用的預設元件。
注意事項
Error
目前不支援 Next.js 的 資料獲取方法 如getStaticProps
或getServerSideProps
。_error
和_app
一樣是保留的路徑名稱。_error
用於定義錯誤頁面的自訂佈局和行為。直接透過 路由 存取或透過 自訂伺服器 渲染時,/_error
會顯示 404 頁面。