Cloud Function 如何调用 Firebase 托管和 return 404 站点的 404.html 文件?

How can a Cloud Function invoke the 404.html file of a site on Firebase Hosting and return 404?

Firebase 托管可以使用 Cloud Functions 处理动态请求。这很好用,但是如果该页面不存在,我想显示静态站点的 404.html 页面。

我不能简单地重定向到它,因为那样会显示 404 页面,但状态是 200。

我可以从 Flask return 404 使用:

  return "Not found", 404

但随后仅打印“未找到”文本。

如何从 Flask 同时 return 404.html 文件和 return 404 代码? Firebase Hosting 调用的 Cloud Function "see" 静态站点的文件吗?

我搜索了解决方案,发现云功能无法访问托管文件。但它可以访问自己的文件。

所以我可以简单地将错误页面 html 复制到函数的目录,因此它与函数一起部署,然后 return 错误页面使用:

return open('404.html').read(), 404

当然,您想将 html 存储到一个变量中,这样每次发送 404 错误时都不会读取它。