问题来由:最近在更新已上线的网站页面的时候,测试发现有的浏览器的内容排版错乱。
问题产生原因:
1、如果用户之前已经访问过该网页,那么浏览器就会缓存该网页的css、js;
2、在这些css、js缓存未过期之前,浏览器只会从缓存中读取css、js;
3、如果在服务器上更新的网页修改了css、js,那么这些修改在用户的浏览器中是不会有变化的,只会从缓存中读取之前的css、js。
解决一(不推荐:局限性,手动清除浏览器缓存):
用户手动清空浏览器的缓存。浏览器就会重新向服务器获取css、js文件,新的文件便会生效。
解决二(推荐):
当你更新网页之后,你不能让每个用户都清理一遍缓存吧,于是便从代码的角度去解决这个问题,在css、js文件的引用路径后面添加一个版本号,更新了哪个文件就更改哪个文件的版本号就可以了,这样浏览器就会把这个文件当做新的文件重新向服务器获取资源。
更新前:
<link rel="stylesheet" href="__CSS__/home.css?v=1.0">
<script type="text/javascript" src="__JS__/demo.js?v=1.0"></script>
更新后:
<link rel="stylesheet" href="__CSS__/home.css?v=2.0">
<script type="text/javascript" src="__JS__/demo.js?v=2.0"></script>
参考:https://blog.csdn.net/qq_36820717/article/details/81663351