本頁面提供 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 應用程式限制和疑難排解
雖然我們正積極開發及擴充 Angular 的App Hosting支援功能,但目前仍有下列限制:
- I18n:雖然核心 I18n 功能可正常運作,但直接導覽至 SSR 網頁可能會導致錯誤。
- 本地化:不支援為不同語言代碼建立版本。
- 建構工具:目前僅支援應用程式建構工具。
- 環境和 Monorepo 工具:如果 Angular 專案有多個應用程式目標,就會失敗。如要取得更完整的單一存放區支援,請使用 Nx。
Angular SSR 中的 HTTP 400 錯誤和 Proxy 信任
如果部署在 Firebase App Hosting 的 Angular 應用程式遇到 HTTP 400 (Bad Request) 錯誤、主機驗證封鎖程式或 Proxy 信任失敗,請按照 Angular 版本採用建議的解決方案:
- Angular v19、v20 和 v21:您可以透過兩種方式解決這些 HTTP 400 錯誤:
- 升級依附元件:執行
npm update @angular/core @angular/ssr,為目前的 Angular 版本安裝最新修補程式版本。 - 手動設定:在伺服器設定中設定
trustProxyHeaders: true,套用程式碼層級的設定備援 (請參閱 Angular 說明文件中的「設定信任的 Proxy 標頭」)。
- 升級依附元件:執行
- Angular v22:在新後端上進行的第一次建構可能會傳回 400 錯誤。如要解決這個問題,請產生第二次建構。之後的所有建構作業都應能正常運作。
Next.js 限制和疑難排解
- 根據預設,除非您明確將
images.unoptimized設為 false 或使用自訂 Image Loader,否則 App Hosting 會停用內建的 NextJS 圖片最佳化功能。請參閱「在 Next.js 中最佳化圖片載入作業」。 - Cloud Run 會解碼含有百分比編碼字元的網址路徑。這可能會導致預期只有編碼網址路徑的功能發生問題,例如 Next.js 平行路徑。
- 目前,App Hosting 會使用中介軟體限制 NextJS 應用程式的快取。隨著時間推移,快取命中率應會提升。
- Cloud Run 會解碼含有百分比編碼字元的網址路徑。這可能會導致預期只有編碼網址路徑的功能發生問題,例如 Next.js 平行路徑。