express.static()是否在内存中缓存文件?
在ExpressJS for NodeJS中,我们可以执行以下操作:
app.use(express.static(__dirname + '/public'));
提供所有静态CSS,JS和图像文件。我的问题是:
1)当我们这样做时,Express是否会在每次提供一种资源时自动在服务器内存中缓存文件,还是从硬盘上读取文件?
2)执行此操作时,Express是否默认使用ETag将资源保存在客户端的硬盘上或仅在客户端的内存上?
回答:
- 静态中间件不进行服务器端缓存。它使您可以执行两种客户端缓存方法:ETag和Max-Age:
如果浏览器看到带有页面的 ,它将对其进行缓存。下次浏览器加载页面时,它将检查ETag编号是否更改。如果文件完全相同,则其ETag也是如此-
服务器以HTTP 304(“未修改”)状态代码响应,而不是再次发送所有字节并节省大量带宽。Etag默认是打开的,但是您可以这样关闭它:
app.use(express.static(myStaticPath, { etag: false
}))
是将最大寿命设置为一定的时间,因此浏览器仅会在一天后请求该资源。
app.use(express.static(myStaticPath, { maxAge: '5000' // uses milliseconds per docs
}))
有关更多详细信息,您可以阅读本文
- 默认情况下,它的硬盘驱动器上,但有人可以使用类似于此
以上是 express.static()是否在内存中缓存文件? 的全部内容, 来源链接: utcz.com/qa/398244.html