express.static()caching文件在内存中吗?

在ExpressJS for NodeJS中,我们可以执行以下操作:

app.use(express.static(__dirname + '/public')); 

为所有的静态CSS,JS和图像文件提供服务。 我的问题是这些:

1)当我们这样做时,Express会自动caching服务器内存中的文件,还是每次提供其中一个资源时都从硬盘读取?

2)当我们这样做的时候,Express是否默认使用ETag,将资源保存在客户端的硬盘上,还是只保存在客户端的内存上?

  1. 静态中间件没有服务器端caching。 它可以让你做两种客户端caching方法:ETag和Max-Age:

如果浏览器使用该页面查看ETag ,则会将其caching。 浏览器下次加载页面时,会检查ETag号码的变化。 如果文件完全相同,那么它的ETag也是一样的 – 服务器响应一个HTTP 304(“未修改”)状态码,而不是再次发送所有字节,并节省了一堆带宽。 Etag默认开启,但可以像这样closures它:

 app.use(express.static(myStaticPath, { etag: false })) 

最大年龄是将最大年龄设置为一段时间,以便浏览器在一天之后才会请求该资源。

 app.use(express.static(myStaticPath, { maxage: '2h' })) 

欲了解更多详情,你可以阅读这篇文章

  1. 默认情况下,它在硬盘上,但有人可以使用这样的东西