在我的服务器上,我公开了一些静态资源,其中之一是用户的个人资料图片。
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标头来处理它。
我尝试设置一些缓存控制标头,但它仍未重新获取到服务器并使用缓存。
编辑:我的服务器和前端不在同一个来源,并且我在服务器顶部有一个代理