我有一个SPA (唱歌页面应用程序)建立了反应+火基。
这就是流程:
firebase.json
express服务器。www.example.com"rewrites": [
{
"source": "**",
"run": {
"serviceId": "server",
"region": "us-central1"
}
}
],在Firebase托管文档中,我们可以看到Firebase主机在CDN上提供内容,默认情况下启用了gzip。

考虑到这个事实,它是否让on在云运行时通过我的express服务器上的压缩来切换?
示例:
const app = express(); // INITIALIZE EXPRESS APP
const publicFolder = path.resolve(__dirname,"../public");
app.use(compression());
app.use(express.static(publicFolder));我猜想这是有意义的,因为Firebase主机压缩来自Hosting CDN to users的数据,而我的express服务器将从Cloud Run to Hosting CDN压缩数据,这是正确的吗?
发布于 2021-02-18 09:17:01
从文档的意思来看,静态内容会自动缓存在CDN上,并对用户进行正确的压缩。但是,默认情况下,后端代码(云函数或云运行)处理的请求由于CDN的动态特性而不缓存。
不要通过应用程序设置压缩,而是通过设置Cache-Control并将缓存标记为public来配置动态内容缓存。在缓存后端内容之后,Firebase宿主将根据用户能够处理的内容(gzip或Brotli)对其进行压缩。
例如:
res.set('Cache-Control', 'public, max-age=300, s-maxage=600');注意:只能缓存 GET和HEAD请求。使用其他方法的HTTPS请求永远不会被缓存。
在https://firebase.google.com/docs/hosting/manage-cache可以看到更多信息。
https://stackoverflow.com/questions/66233805
复制相似问题