本页面提供了有关常见问题解答 (FAQ) 的 App Hosting。
App Hosting 常见问题解答
一般 App Hosting 限制和问题排查
- 由于 基础架构Cloud Run中存在问题,在某些区域(如
us-central1)中,创建或更新资源的速度可能会比预期慢。如果部署延迟在特定区域中是一个问题,Google 建议部署到其他区域。 - App Hosting 的 CDN 只能在其缓存键中包含一组特定的请求标头。该列表包括 NextJS 的
RSC、Next-Router-State-TreeNext-Router-Prefetch、Next-Router-Segment-Prefetch和Next-Url标头,以及 Cloud CDN 的标准Accept、Accept-EncodingAccess-Control-Request-Headers、Access-Control-Request-Method、OriginSec-Fetch-Dest、Sec-Fetch-Mode、Sec-Fetch-SiteX-Goog-Allowed-Resources和X-Origin。如果响应包含Vary标头,且其值未在此处列出,我们的 CDN 将不会缓存该响应。 - 未缓存的静态文件由 Cloud Run 提供;在 以后的版本中,这些文件将存储在 App Hosting 来源中并由其提供,以获得更好的性能。
- Firebase 控制台可能会在创建后端时间歇性地显示“build was not found and is invalid”错误。
- 同一项目中的所有后端共享一个 GitHub 组织/账号。 它们可以连接到该组织/账号下的不同代码库。 如需创建连接到不同 GitHub 账号的后端,请将它们放在不同的项目中。
Angular 应用的限制和问题排查
虽然 App Hosting 对 Angular 的支持正在积极开发和 扩展,但它具有以下限制:
- I18n:虽然核心 I18n 功能可以正常运行,但直接导航到 SSR 页面可能会导致错误。
- 本地化:不支持为不同的语言区域构建版本。
- 构建器:目前仅支持应用构建器。
- 环境和 Monorepo 工具:具有多个应用目标的 Angular 项目将失败。如需获得更完整的 Monorepo 支持, 请使用 Nx。
Angular SSR 中的 HTTP 400 错误和代理信任
如果部署在 Firebase App Hosting 上的 Angular 应用遇到 HTTP 400(错误请求)错误、主机验证阻止程序或代理信任 失败,请按照适用于您的 Angular 版本的建议解决方案进行操作:
- Angular v19、v20 和 v21:您可以通过两种方式解决这些 HTTP 400
错误:
- 升级依赖项:运行
npm update @angular/core @angular/ssr,为当前 Angular 版本安装最新的补丁版本。 - 手动配置:通过在服务器配置中
设置
trustProxyHeaders: true来应用代码级配置回退(请参阅 Angular 文档中的 配置受信任的代理标头)。
- 升级依赖项:运行
- Angular v22:在新后端上的首次构建可能会返回 400 错误。 如需解决此问题,请生成第二次构建。所有后续构建都应按预期运行。
Next.js 的限制和问题排查
- 默认情况下,除非您明确将
images.unoptimized设置为 false 或使用自定义 图片加载器,否则 App Hosting 上会停用内置的 NextJS 图片优化功能。请参阅优化 Next.js 上的图片加载。 - 包含百分号编码字符的网址路径由 Cloud Run 解码。这可能会导致仅接受编码网址路径的功能出现问题,例如 Next.js 并行路由。
- 目前,App Hosting 限制了使用 中间件的 NextJS 应用的缓存。 随着时间的推移,缓存命中率应该会提高。
- 包含百分号编码字符的网址路径由 Cloud Run 解码。 这可能会导致仅接受编码网址路径的功能出现问题,例如 Next.js 并行路由