我正在使用打字稿构建一个非常简单的单页反应应用程序。我尝试使用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
或 关闭浏览器(关闭所有选项卡),然后在新实例中重新打开。
这看起来像缓存以前版本的代码的缓存问题。