首页 > 解决方案 > Cloud Function 如何调用 Firebase 托管网站的 404.html 文件并返回 404?

问题描述

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

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

我可以从 Flask 返回 404:

  return "Not found", 404

但随后仅打印 Not found 文本。

如何从 Flask 返回 404.html 文件并同时返回 404 代码?Firebase 托管调用的云函数是否“看到”静态站点的文件?

标签: pythonflaskhttp-status-code-404firebase-hostingcustom-error-pages

解决方案


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

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

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

当然,您希望将 html 存储到变量中,因此每次发送 404 错误时都不会读取它。


推荐阅读