首页 文章

Express JS - 想要缓存静态资源但不渲染HTML

提问于
浏览
1

我正在开发一个动态应用程序,我们不想缓存HTML(即购物车内容可以从一个页面刷新更改为下一个页面刷新) . 为此,我正在调用设置缓存控制头的中间件以避免缓存 . 但是,所述缓存控制头也适用于获取静态资源 . 出于明显的性能原因,这是不希望的行为 . 我们def想要缓存静态资源 . 我的问题是这样的...有没有办法为静态资源和渲染的html设置差异响应头?我尝试将setHeaders选项传递给express.static中间件,但线程挂起,大概是因为我们试图设置两次相同的响应头 . 任何帮助是极大的赞赏!

Edit :添加环境信息 -

我在Express 4和Node 4.4上

Edit :添加示例代码 . 这是来自app.js的相关位,它积极地避免在浏览器中缓存HTML .

app.use(express.static(config.static.public));

// ...Stuff

app.use(function (req, res, next) {

    // Don't cache html
    res.set('Cache-Control', 'no-cache, private, no-store, must-revalidate, '
        + 'max-stale=0, post-check=0, pre-check=0');
    res.set('Expires', 'Fri, 31 Dec 1998 12:00:00 GMT');
    next();

});

1 回答

  • -1

    app.use(express.static("static", {maxage : 0})) more info

    也许在测试之前清除浏览器中所有准备好的缓存文件 .

相关问题