饭饭's Blog - js
type: channel
link: https://ffis.me/tag/js/
items: 强制客户端刷新js/css浏览器缓存

强制客户端刷新js/css浏览器缓存
type: item
date: 2017-12-09T20:36:00+08:00
description: 由于经常魔改主题，就会发现如果之前浏览器已经缓存了js/css等文件当服务器中的js/css文件更新了，客户端直接访问是不会更新缓存的，就会导致页面显示不正常需要用户进行Ctrl+F5强制刷新才能正常访问，这样显然是不合理的经研究发现两种解决办法：方法1 更新文件后更改引用的文件名缓存是通过文件名标记缓存的内容的，如果我们网站更新了js/css文件后，直接在更换引用文件名即可例如：原先调用语句是如下样式 直接更改引用的文件名即可 方法2 给css/js等文件加个版本号如果我们每次更新js/css文件后还要修改文件名就有点麻烦了，更为方便的方法就是在引用js/css的结尾处加入版本号即可例如：原先调用语句是如下样式 更改css文件的版本号为1.1 参数说明1.js/css文件后的问号是不起任何作用的，仅能当做后缀使用的，所以可以用问号加入版本号等信息，更新文件版本的同时也可以刷新浏览器的缓存，很是方便。2.问号后面不一定是版本号，可以根据自己的喜好改成任何字符都行，如时间（?20171209），序号（?123456）等等。3.加上版本号的脚本实际上并不存在，由服务器动态生成，仅仅是区别文件而已。 # 这段代码对于文件来说等价于 但是浏览器就会认为它是这个文件的某一个版本PS:两种方法达到的效果是一样的，可以根据自己的喜好选择，也可以混合使用。