删除快递中的Etag标题

时间:2015-11-07 23:09:21

标签: node.js express http-headers etag

我搜索了很多但仍无法找到解决方案,我使用expressetag默认设置res.set('etag', false); res.removeHeader('ETag'); app.disable('etag'); app.use(express.static(__dirname + '/public'), { etag: false }); 为true,我尝试了所有的解决方案我在网上发现它仍然设置,例如:

etag

仍然设置了,所以,我在这里缺少一些东西,因为我不是真的在节点或表达方面经验丰富。

我的问题显然是,如何禁用此标头,因为,我有一个包含大量图片的页面(A LOT)并且所有图片都是静态的,cache-control因为发送而导致大量阻塞要求检查有效性并阻止浏览器依赖{{1}},这会大大增加页面加载时间。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

请参阅:http://expressjs.com/4x/api.html#app.set

您可以使用以下方法在ExpressJS 4中执行:

app.set('etag', false);

将默认值设置为false时,将其设置为true会完全禁用etag标头。

可能的option values是:

  • 布尔值(true,false)
  • 字符串('强','弱')
  • 功能

答案 1 :(得分:0)

这不是一个完整的答案,但我是在添加它以防万一有人面临同样的问题。

事实证明我缺少的是浏览器在第一次加载(包括页面刷新)时强制执行缓存有效性检查,这就是为什么我一直看到etag标题。

要正确测试是否删除了标题,您必须浏览到该网址并检查不要直接删除它。

我希望这对某人有所帮助,因为我需要一段时间才能找到它