本頁面提供 App Hosting 的常見問題解答。
App Hosting 常見問題
一般 App Hosting 限制和疑難排解
- 由於 Cloud Run 基礎架構發生問題,
在
us-central1等部分區域建立或更新資源的速度可能比 預期慢。 如果特定區域的部署作業延遲時間過長,Google 建議您部署至其他區域。 - App Hosting 的 CDN 只能在快取鍵中加入一組特定的要求標頭。這份清單包含 NextJS 的
RSC、Next-Router-State-Tree、Next-Router-Prefetch、Next-Router-Segment-Prefetch和Next-Url標頭,以及 Cloud CDN 的標準Accept、Accept-Encoding、Access-Control-Request-Headers、Access-Control-Request-Method、Origin、Sec-Fetch-Dest、Sec-Fetch-Mode、Sec-Fetch-Site、X-Goog-Allowed-Resources和X-Origin。如果回應包含Vary標頭,且值未列於此處,我們的 CDN 就不會快取該回應。 - 未快取的靜態檔案會從 Cloud Run 提供;在後續版本中,這些檔案會儲存並從 App Hosting 來源提供,以提升效能。
- 建立後端時,Firebase 控制台可能會間歇性顯示「找不到建構作業,且建構作業無效」錯誤。
- 同一專案中的所有後端會共用 GitHub 組織/帳戶。可以連結至該組織/帳戶下的不同存放區。 如要建立連結至不同 GitHub 帳戶的後端,請將這些後端放在不同的專案中。
Angular 應用程式限制和疑難排解
雖然 App Hosting 對 Angular 的支援正在積極開發和擴充,但仍有下列限制:
- I18n:雖然核心 I18n 功能可正常運作,但直接前往 SSR 頁面可能會發生錯誤。
- 本地化:不支援為不同語言代碼建構版本。
- 建構工具:目前僅支援應用程式建構工具。
- 環境和單一存放區工具:如果 Angular 專案有多個應用程式目標,就會失敗。如需更完整的單一存放區支援,請使用 Nx。
Angular SSR 中的 HTTP 400 錯誤和 Proxy 信任
如果部署在 Firebase App Hosting 的 Angular 應用程式發生 HTTP 400 (錯誤的要求) 錯誤、主體驗證封鎖工具或 Proxy 信任失敗,請按照 Angular 版本的建議解決方案操作:
- Angular v19、v20 和 v21:您可以透過下列兩種方式解決這些 HTTP 400 錯誤:
- 升級依附元件:執行
npm update @angular/core @angular/ssr,為目前的 Angular 版本安裝最新修補程式。 - 手動設定:在伺服器設定中設定
trustProxyHeaders: true,套用程式碼層級的設定備用方案 (請參閱 Angular 說明文件中的「設定信任的 Proxy 標頭」)。
- 升級依附元件:執行
- Angular v22:在新後端上首次建構時,可能會傳回 400 錯誤。如要解決這個問題,請產生第二個版本。所有後續建構作業都應正常運作。
Next.js 限制與疑難排解
- 根據預設,App Hosting 會停用內建的 NextJS 圖片最佳化功能,除非您明確將
images.unoptimized設為 false,或使用自訂圖片載入器。請參閱「最佳化 Next.js 的圖片載入」。 - 根據預設,Next.js 會將快取的頁面和資料寫入檔案系統,這會計入 App Hosting 上每個服務執行個體的記憶體。如果執行個體重新啟動時發生
Memory limit exceeded錯誤,請參閱「在 Next.js 上設定伺服器快取」。 - 目前,App Hosting 會限制使用中介軟體的 NextJS 應用程式快取。快取命中率應會隨著時間提高。
- Cloud Run 會解碼含有百分比編碼字元的網址路徑。這可能會導致預期僅有編碼網址路徑的功能發生問題,例如 Next.js 平行轉送。