gpt4 book ai didi

node.js - express.static() 是否在内存中缓存文件?

转载 作者:IT老高 更新时间:2023-10-28 22:02:58 40 4
gpt4 key购买 nike

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

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

提供所有静态 CSS、JS 和图像文件。我的问题是:

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

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

最佳答案

  1. 静态中间件不进行服务器端缓存。它允许您执行两种客户端缓存方法:ETag 和 Max-Age:

如果浏览器在页面中看到 ETag,它将缓存它。下次浏览器加载页面时,它会检查 ETag 编号是否更改。如果文件完全相同,它的 ETag 也是如此 - 服务器以 HTTP 304(“未修改”)状态代码进行响应,而不是再次发送所有字节并节省大量带宽。Etag 默认是开启的,但是你可以像这样关闭它:

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

Max-age 会将 max-age 设置为某个时间量,因此浏览器只会在一天过后才请求该资源。

app.use(express.static(myStaticPath, {
maxAge: '5000' // uses milliseconds per docs
}))

有关更多详细信息,您可以阅读此 article

  1. 默认情况下它在硬盘驱动器上,但有人可以使用 this 之类的东西

关于node.js - express.static() 是否在内存中缓存文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32154656/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com