问题描述
当您使用 Firebase Hosting + Cloud Run(快速服务器)时,Firebase Hosting 就像是您的客户端和服务器之间的代理。
我应该在哪里设置我的 Cache-Control
标头?
- 在
firebase.json
中配置 Firebase 托管 - 或者我应该在 Cloud Run 上的快速服务器中使用
res.set("Cache-Control")
吗?
解决方法
两种方式都可以。但是无论您在 firebase.json
上设置什么,都会覆盖您在 express
代码上设置的内容。
例如:Firebase 托管上的 default Cache-Control
是 private
。
例如,如果您没有在 Cache-Control
中添加任何 firebase.json
,而在快速回复中添加了 res.set("Cache-Control","no-cache");
,那么您的回复将是 no-cache
,因为您意图。
但如果您同时向 firebase.json
添加类似的内容,它会覆盖您的 res.set()
调用:
{
"source": "/**","headers": [{
"key": "Cache-Control","value": "public" // OR EVEN IF YOU EXPLICITLY SET "private",WHICH IS THE DEFAULT
}] // IT WILL OVERWRITE WHAT YOU SET ON YOUR SERVER WITH res.set()
}