express的默认Cache-Control
express渲染页面一共有三种方式:将页面作为静态资源 express.static、res.sendFile、res.render。
其中前两种方式都会有默认缓存 Cache-Control: public, max-age=0
。
如果你正在学习缓存这一章,那这个坑不要踩。 可以试试原生的node启服务
如果你想要继续使用express,还想借此联系缓存这一章,你可以这么做,express.static关闭默认缓存配置+使用模板
app.use(express.static('assets', { // 给静态资源设置响应头
etag: false, //移除默认配置项
cacheControl: false, //移除默认配置项
lastModified: false, //移除默认配置项
setHeaders: (res, path, stat) => {
res.setHeader('Cache-Control', 'no-store'); //自己设置头部信息
}
}))
另外 模板的res.render 返回响应头虽然没有Cache-Control
但是它又有其它默认缓存值干扰
Date:Sun, 23 Jun 2024 09:24:29 GMT
Etag:W/"111-i9FchrKyKmHwfUGfPSSJu2adINw"
总之,要学习http缓存,还是放弃express 转为原生node的demo吧,它的响应头比较干净 不会干扰你