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吧,它的响应头比较干净 不会干扰你

posted @ 2024-06-23 17:03  丁少华  阅读(6)  评论(0编辑  收藏  举报