loading...
上次更新: 2024-05-10
這篇是紀錄一些工作開發時學到的小知識
ENV 變數的使用NEXT_PUBLIC_ 前綴Next.js 中,我們的環境變數可以用 NEXT_PUBLIC_ 作為前綴,在 build 的時候,這變數的值就會直接注入程式碼裡面。例如:
在 .env 中
NEXT_PUBLIC_API_DOMAIN=https://my-api.com
使用時我們這樣寫
const response = await fetch(`${process.env.NEXT_PUBLIC_API_DOMAIN}/user`);build 完之後查看 .next 裡的內容,會發現原本的 process.env.NEXT_PUBLIC_API_DOMAIN 全都被替換成 https://my-api.com 了。
NEXT_PUBLIC_ 前綴NEXT_PUBLIC_ 前綴的環境變數只有在伺服器端能得到,客戶端沒辦法讀取13.4 的 generateMetadata 不適用 error.tsx在 app-router 裡面,我們可以創建一個 error.tsx(相當於 page-router 的 500.tsx),只要 throw Error,就會自動顯示這個畫面。
情境:
我們在一個 getData function 裡打 api 得到資料,若過程出錯,就 throw error。這時運作如預期,出現錯誤時會顯示 error.tsx 的畫面。
但在 generateMetadata 中,若 throw error,會顯示 next 預設的錯誤畫面。

升級到版本 13.5
error.tsx status code 問題版本 14 以下,error.tsx 的 status code 會是 200,若想要正確顯示,需升級至 v14 以上。