Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 缓存控制头-忽略查询参数_Node.js_Express_Caching_Cache Control - Fatal编程技术网

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

我正在为我的公司网站设置Cloudfront发行版。 我们希望通过使用服务器端的缓存控制头(带有Express的Node.Js)来设置缓存时间,如下所示:

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缓存行为中的调用进行缓存

可能存在的副本