node.js - Express:设置maxAge后对单个文件SetHeader 'Cache-Control'

标签 node.js express cache-control

这里是 Node 新手。以下代码会导致所有文件接收响应 header “Cache-Control public,max-age=31536000”。我希望索引的 max-age 为 0。我尝试了几种不同的方法,但其根源似乎是我的一个更根本的误解。

为什么下面的 res.setHeader 行没有生效(这样我就可以理解我的误解)以及确保 Index.html 不被缓存的正确方法是什么?

var express    = require('express'),
    gzipStatic = require('connect-gzip-static'),
    app        = express(),
   
    port= process.env.PORT || 3030,
    cacheAge = 365 * 24 * 60 * 60 * 1000;

app.use(gzipStatic(__dirname + '/public', { maxAge: cacheAge }));

app.get('/', function(req, res) {
    res.setHeader('Cache-Control', 'max-age=0');
    res.sendFile('index.html');
});

最佳答案

尝试在 app.use() 中设置 header :

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

  res.setHeader('Cache-Control', 'public, max-age=31557600'); // 1 year

  ......
})

关于node.js - Express:设置maxAge后对单个文件SetHeader 'Cache-Control',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31124864/

相关文章:

node.js - 错误 : Cannot find module 'update-notifier'

javascript - 范围错误: Invalid status code: 0 in Express App - Session issue?

node.js - 使用网络请求比socket.io更高效吗?

google-chrome - Chrome 似乎忽略了 'Cache-Control: must-revalidate' header

c++ - 当链接计数为2时,有没有办法完全删除一个inode?

angular - 如何防止 Angular 7 站点上的浏览器缓存?

javascript - 将一组十六进制值相加

node.js - Socket.io 需要很长时间才能连接

javascript - ajax调用未正确发送数据

node.js - 使用不同的值更新 mongoDb 集合的每个文档的相同属性