我试图在浏览器中缓存静态文件一小段时间(10秒)。刷新页面时似乎正常工作。 - 如果你是新人,请200 - 如果您在前10秒内进行软刷新,则从缓存中提供200个 - 如果你来的时间超过10秒,则为304。
每当我添加Http标头&#39; Vary&#39;&#39; Accept-Encoding&#39; 时,它就会停止工作,这意味着浏览器缓存不再起作用(< strong>我总是点击服务器)。这是因为每当我添加Http标头时, Http请求就会停止发送if-modified-since或if-none-match 。
缓存控制和兼容性是否可以协同工作?
我留下了Http请求和响应,以防有人提出一些解决方案:
Request Header
accept:*/*
accept-encoding:gzip, deflate, sdch
accept-language:en-US,en;q=0.8
cache-control:max-age=0
cookie:XXXXX
referer:XXXXXXXXX
user-agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36
Response Header
cache-control:max-age=10
content-encoding:gzip
content-type:application/javascript
date:Wed, 13 Apr 2016 12:34:57 GMT
etag:W/"XXXXXXXXXXXXXX"
last-modified:Wed, 13 Apr 2016 12:34:25 GMT
server:nginx/1.9.14
status:200
vary:Accept-Encoding
x-powered-by:Express
在 Express 中,我有此配置来设置静态文件的响应标头:
var setHeaders = function(res, path)
{
res.setHeader('Cache-Control', 'max-age=10');
res.vary('Accept-Encoding');
};
app.use('/static', express.static('./app/static', {setHeaders: setHeaders}));
答案 0 :(得分:0)
我有自我证书问题。它似乎导致了这个问题。如果没有标题变化,即使未安装证书,一切似乎也能正常工作。尽管如此,当使用vary头时,问题出现在缓存中。
安装自我证书使其正常工作。