我已经在heroku上部署了我的节点应用程序,并且我将cloudflare作为其前面的CDN。现在我的问题是,如果我的javascript发生了变化,如果我在cloudflare中清除缓存,是否会自动清除浏览器缓存? 我在expressjs服务器文件中进行了以下设置
if ('production' == process.env.NODE_ENV) { //production
var oneYear = 31557600000;
app.use(express.static(__dirname + '/public', {maxAge: oneYear}));
} else { //development
app.use(express.static(__dirname + '/public'));
app.use(express.errorHandler());
}
如果对cloudflare的清除没有清除浏览器缓存,那么每次更改我的javascript或css文件时清除浏览器缓存的最佳策略是什么?
此致 赤丹
答案 0 :(得分:0)
这是我最好的方法:
如果散列没有改变,浏览器会看到相同的文件名并从缓存中加载它。如果在名称中附加了一个不同的散列作为查询字符串,浏览器将向服务器查询新版本。
Cloudflare可以选择禁用忽略查询字符串的行为,所以只需禁用它,你就可以了。
我知道eTags解决方案,但我从未设法让它正常工作。我不认为node能够很好地使用eTags,但我可能错了。这不是我现在关注的问题,因为我发现我的方法设计得很好,而且我在每个项目中都将它用作库。
答案 1 :(得分:-1)
由于浏览器缓存,您可能仍希望在浏览器上进行硬刷新。