【问题标题】:Where to set Cache-Control when using Firebase Hosting + Cloud Run express server?使用 Firebase Hosting + Cloud Run 快速服务器时在哪里设置 Cache-Control?
【发布时间】:2021-05-12 09:22:58
【问题描述】:
当您使用 Firebase 托管 + Cloud Run(快速服务器)时,Firebase 托管就像您的客户端和服务器之间的代理一样。
我应该在哪里设置我的Cache-Control 标头?
- 在
firebase.json 中配置 Firebase 托管
- 还是应该在 Cloud Run 上的 express 服务器中使用
res.set("Cache-Control")?
【问题讨论】:
标签:
firebase
express
firebase-hosting
cache-control
google-cloud-run
【解决方案1】:
这两种方法都可以。但是你在firebase.json 上设置的任何内容都会覆盖你在express 代码上设置的内容。
例如:Firebase Hosting 上的defaultCache-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()
}