处理来自具有相同名称的更新图像的缓存

时间:2019-05-17 10:13:06

标签: node.js express http-headers browser-cache

在我的服务器上,我公开了一些静态资源,其中之一是用户的个人资料图片。

const express = require('express');

const serve = express();

function cacheControl(res, path, stat) {
  res.header('Cache-Control', ['no-cache', 'public']);
}

serve.use(
  express.static('directory', {
    setHeaders: cacheControl
  })
);

因此,在前端,当您获得用户信息时,它将返回一个图像URL,这将是这样的:

https://localhost:4000/root/directory/userprofile/${userId}.${extension}

用户更新个人资料后,他将发送新图片toto.png 我将文件名修改为userId,所以${userId}.png

从网络上载文件时,图像完全不会更改,因为从url进入的路径是相同的。浏览器仍将使用第一个请求中的缓存图像。 (仅当我更改扩展名时,图像才会重新加载。)

我可以为${userId}-${Date}.${extention}重命名我的文件,但是我想使用http标头来处理它。 我尝试设置一些缓存控制标头,但它仍未重新获取到服务器并使用缓存。

编辑:我的服务器和前端不在同一个来源,并且我在服务器顶部有一个代理

0 个答案:

没有答案