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