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



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

未找到站点的图像

我使用的是基本的火力基础配置(您使用firebase init获得的默认配置):

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

当我访问[name].web.app时,我收到"找不到网站"。我会怀疑index.html、重写、构建文件夹等有问题......但是为什么我会在[name].firebaseapp上看到该页面正常运行.com并且托管得很好,而且应该如此?

我怀疑有几件事:

域名本身
  • 不可用(尽管如果在创建项目时是这种情况,为什么Firebase会将域名命名为无效域名)
  • 这些文件仅被推送到[name].firebaseapp.com域(在这种情况下,您如何控制它?

这个周末,同样的奇怪问题也发生在我身上。确切症状:

  • 在任何部署之前,我打开了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的客户支持发了电子邮件,第二天域名就可以正常工作了。没有解释为什么会出现这个问题,但通过电子邮件向他们解决了这个问题。

这为我解决了:

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

这看起来像缓存以前版本的代码的缓存问题。

最新更新