将 cachebreaker 附加到一种类型的所有图像的文件名
Append cachebreaker to filenames of all images of a type
我能够识别所有类型 (SVG) 的图像并在控制台日志中附加缓存中断日期字符串。
allImg = document.querySelectorAll('img[src$=".svg"');
imgTime = Date.now();
allImg.forEach(img => console.log(img.src + '#' + imgTime));
我一直在寻找这个解决方案,但它只适用于单个文件名,而不适用于多个图像:
感谢任何帮助。
好的,这是它的工作原理,为页面中的每个 SVG 图像添加一个缓存破坏器:
allImg = document.querySelectorAll('img[src$=".svg"');
imgTime = Date.now();
allImg.forEach(img => {
//console.log(img.src);
newImgSrc = img.src + '?' + imgTime;
//console.log(newImgSrc);
img.src = newImgSrc;
});
需要注意的是,这会强制 SVG 加载第二次,因此,如果可以将缓存无效化器写入原始 IMG SRC 中,这通常是更可取的。此特定用例中的站点限制意味着这不是一个选项。
我能够识别所有类型 (SVG) 的图像并在控制台日志中附加缓存中断日期字符串。
allImg = document.querySelectorAll('img[src$=".svg"');
imgTime = Date.now();
allImg.forEach(img => console.log(img.src + '#' + imgTime));
我一直在寻找这个解决方案,但它只适用于单个文件名,而不适用于多个图像:
感谢任何帮助。
好的,这是它的工作原理,为页面中的每个 SVG 图像添加一个缓存破坏器:
allImg = document.querySelectorAll('img[src$=".svg"');
imgTime = Date.now();
allImg.forEach(img => {
//console.log(img.src);
newImgSrc = img.src + '?' + imgTime;
//console.log(newImgSrc);
img.src = newImgSrc;
});
需要注意的是,这会强制 SVG 加载第二次,因此,如果可以将缓存无效化器写入原始 IMG SRC 中,这通常是更可取的。此特定用例中的站点限制意味着这不是一个选项。