我将Firebase Hosting中的多个路径重写为始终返回相同结果的Cloud Function。我需要调用一次函数,缓存其结果,然后将其返回到这些路径中的任何后续请求。但是,如文档 所述,根据以下内容提供缓存的内容:
- 主机名
- 路径
- 查询字符串
- Vary标头中指定的请求标头的内容
因此,如果请求了其他URL,则将再次调用该函数。但是有办法避免这种情况吗?设置Cache-Control
标头确实可以防止在请求相同的URL时再次调用该函数,但在请求不同的URL时不会。
这是我的主机和功能配置:
firebase.json
:
{
"hosting": {
"rewrites": [
{
"source": "**",
"function": "myFunction"
}
]
}
}
functions/index.ts
:
import * as functions from "firebase-functions"
export const myFunction = functions.https.onRequest((req, res) => {
res.set("Cache-Control", "public, max-age=31536000")
res.send("This is a Cloud Function.")
})
Firebase托管(和Web浏览器)的缓存行为始终取决于URL路径。
根据您的目标,有几种方法可以尝试解决此问题:
/
)而不是重写。然后,云功能只能在已知(和可缓存)路径上提供内容。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句