解决修改图片/css/js文件后页面效果不变问题

前言

问题描述:当我们在网页上传修改图片,或者开发过程修改css,js文件后,没有效果。

原因:在加载这些数据时,网页进行了缓存。当数据变化时,网页使用的仍然是缓存的数据。所以效果未发生变化。

解决方法:给src或href的值改变为不一样的值。通过添加参数v=随机数。

原理:因为所带参数不同,那么每次访问时的地址都不同,故浏览器每次都会重新加载并缓存。

下文具体步骤分析


一.问题展示

想直接看解决方法演示的请跳到最后

1.图片修改后无效果:

原图片:

修改上传别的图片:

这里我上传了一个白色背景的图片

上传后效果:

发现没有任何变化 。

2.修改css/js文件无效果

css文件里的一个样式,导航栏的导航链接

修改前:

修改后:将color改变为了red,发现导航栏超链接颜色并未发生变化


 二.解决方法演示 

*代码描述:在jsp中使用java脚本来获取到一个随机数random,并设置为请求域的变量。然后在img, js,css引入的属性src或href值的后面加上参数?v = ${random}

<%
        String random = Math.random()+"";
        request.setAttribute("random",random);
%>

css引入,js引入同理

<link href="../css/listCategory.css?v=${random}" rel="stylesheet">

图片img

<img height="30px" src="../img/category/${c.id}.jpg?v=${random}">

重新进行一次上述的修改操作,得到:

都发生了更新。

原理:因为所带参数不同,那么每次访问时的地址都不同,故浏览器每次都会重新加载并缓存。


总结

问题产生原因:在加载这些数据时,网页进行了缓存。当数据变化时,网页使用的仍然是缓存的数据。所以效果未发生变化。

解决方法:给src或href的值改变为不一样的值。通过添加参数v=随机数。

原理:因为所带参数不同,那么每次访问时的地址都不同,故浏览器每次都会重新加载并缓存。

经验分享 程序员 微信小程序 职场和发展