自訂錯誤頁面
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 頁面。