Firebase 默认托管域:只有 .firebaseapp.com 有效,但 .web.app 失败

我正在使用打字稿构建一个非常简单的单页反应应用程序。我尝试使用 Firebase 托管来托管它。令人惊讶的是,只有域 [name].firebaseapp.com 有效,但 [name].web.app 显示“未找到站点”默认页面:

site-not-found image

我正在使用基本的 firebase 配置(您使用 firebase init 获得的默认配置):

{
  "hosting": {
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

当我继续 [name].web.app 时,我得到“找不到站点”。我会怀疑 index.html 、重写、构建文件夹等有问题……但是为什么我会在 [name].firebaseapp.com 上看到页面功能正常并且托管得很好,而且应该是这样?

我怀疑有几件事:

  • firebase 本身不提供域名(尽管如果在创建项目时出现这种情况,为什么 firebase 会将域命名为无效的)
  • 文件仅被推送到 [name].firebaseapp.com 域(在这种情况下,您如何控制它?)
stack overflow Firebase default hosting domains: only .firebaseapp.com works but .web.app fails
原文答案
author avatar

接受的答案

更新:

我给 firebase 的客户支持发了邮件,第二天域名就正常工作了。没有解释为什么会出现这个问题,但是给他们发邮件解决了。


答案:

作者头像

这为我解决了:

硬刷新 CTRL + F5 或关闭浏览器(关闭所有选项卡)然后在新实例中重新打开。

这看起来像是一个缓存问题,其中缓存了以前版本的代码。

作者头像

这个周末我也遇到了同样奇怪的问题。确切症状:

  • 在任何部署之前,我打开了 example.web.app 而不是 example.firebaseapp.com

  • 第一次部署后, example.web.app 显示“未找到站点”,但 example.firebaseapp.com 按预期工作。因此,我的客户域也显示“找不到站点”。

    • *

根据支持人员的建议之一,现在由这些命令修复:

curl -X PURGE https://your.notworking.url

就我而言,它只是 example.web.app 和我的自定义域。所以在 20 秒内修复。


没有工作的建议:

  • 扰乱浏览器(清除浏览器缓存、隐身模式等)
  • 重新部署

解释:

找不到站点的东西缓存在他们的 CDN 服务器上。所以很自然地,清除本地浏览器缓存是行不通的。奇怪的是重新部署也没有用。

另一个有用的注意事项是,在响应中有一个 x-served-by 标头,它告诉您您的 Web 应用程序缓存在哪个 CDN 服务器上。

特别感谢来自 firebase 支持的 Hugo Varela

相关问题