Node.js 缓存控制头-忽略查询参数
我正在为我的公司网站设置Cloudfront发行版。 我们希望通过使用服务器端的缓存控制头(带有Express的Node.Js)来设置缓存时间,如下所示:Node.js 缓存控制头-忽略查询参数,node.js,express,caching,cache-control,Node.js,Express,Caching,Cache Control,我正在为我的公司网站设置Cloudfront发行版。 我们希望通过使用服务器端的缓存控制头(带有Express的Node.Js)来设置缓存时间,如下所示: if (req.url.startsWith('/static')) { res.setHeader('Cache-Control', 'public,max-age=500'); } 起初,这似乎工作得很好,但缓存的一个条件是失败,即忽略查询字符串参数 例如,请求“domain.com/static/logo”和“domain.co
if (req.url.startsWith('/static')) {
res.setHeader('Cache-Control', 'public,max-age=500');
}
起初,这似乎工作得很好,但缓存的一个条件是失败,即忽略查询字符串参数
例如,请求“domain.com/static/logo”和“domain.com/static/logo?foo=bar”应解释为相同的资源,并缓存为一个资源
我想知道是否可以在忽略资源的查询字符串参数的同时,仅使用缓存控制头来缓存资源
谢谢。
< P>默认CyrdFrar确实删除查询字符串,也不考虑它进入缓存,这是CyrdFrand的默认行为,这样就不会有基于不同查询字符串参数的多个缓存副本。 如果您看起来没有这种行为,您可能会将“查询字符串”设置为“转发所有”并基于CloudFront缓存行为中的调用进行缓存 可能存在的副本