首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Firebase主机+云运行。我应该在我的特快服务器上设置“压缩()”吗?

使用Firebase主机+云运行。我应该在我的特快服务器上设置“压缩()”吗?
EN

Stack Overflow用户
提问于 2021-02-16 23:46:25
回答 1查看 228关注 0票数 0

我有一个SPA (唱歌页面应用程序)建立了反应+火基。

这就是流程:

firebase.json

  • everything重写到云运行的express服务器。
  • 我的Firebase主机上有一个连接的自定义域:www.example.com
代码语言:javascript
复制
"rewrites": [
  {
    "source": "**",
    "run": {
      "serviceId": "server",
      "region": "us-central1"
    }
  }
],

在Firebase托管文档中,我们可以看到Firebase主机在CDN上提供内容,默认情况下启用了gzip

考虑到这个事实,它是否让on在云运行时通过我的express服务器上的压缩来切换?

示例:

代码语言:javascript
复制
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压缩数据,这是正确的吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-18 09:17:01

从文档的意思来看,静态内容会自动缓存在CDN上,并对用户进行正确的压缩。但是,默认情况下,后端代码(云函数或云运行)处理的请求由于CDN的动态特性而不缓存。

不要通过应用程序设置压缩,而是通过设置Cache-Control并将缓存标记为public来配置动态内容缓存。在缓存后端内容之后,Firebase宿主将根据用户能够处理的内容(gzip或Brotli)对其进行压缩。

例如:

代码语言:javascript
复制
res.set('Cache-Control', 'public, max-age=300, s-maxage=600');

注意:只能缓存 GET和HEAD请求。使用其他方法的HTTPS请求永远不会被缓存。

https://firebase.google.com/docs/hosting/manage-cache可以看到更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66233805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档