处理办法:1.更改css文件名:其实解决这个问题很简单,缓存是通过文件名标记缓存的内容的。在你更新了网站的css文件内容后,在更换一下css的文件名就可以了。如原先html中的css调用语句如下:<link rel="stylesheet" href=“http://www.example.com/style.css” type="text/css" media="screen" />改一下css文件名就可以了:<link rel=“stylesheet” href="http://www.example.com/index.css" type="text/css" media="screen" />另外一种从更改css文件名的方法是将版本号写到文件名中,如:<link rel="stylesheet" href="http://www.example.com/index.v2011.css" type="text/css" media="screen"/>css文件更新后,改一下文件名中的版本号即可:<link rel="stylesheet" href="http://www.example.com/index.v2012.css" type="text/css" media="screen"/>2.给css文件加个版本号:其实每次修改css文件后还要修改css的文件名有点麻烦,那么我们可以在加载css语句中加入个版本号(即css链接中?后面的内容)就可以了。如原先html中的css调用语句如下:<link rel="stylesheet" href=“http://www.example.com/style.css?v=2011”type="text/css" media="screen"/>改一下css文件的版本号改成2012就可以了:<link rel="stylesheet" href=“http://www.example.com/style.css?v=2012”type="text/css" media="screen"/>总结:其实css文件后面的问号起不到实际作用,仅能当作后缀,如果用问号加参数的方法,可以添加版本号等信息,同时可以刷新一下浏览器端的缓存。一个小小的细节,带来很大的方便。给网址后面添加一个随机数(或者是任意的字符串)即可,比如原来的网址是这样的:
http....../.../1.htm
改为
http....../.../1.htm?1234
即可(注意问号不能省)。
浏览器是根据网址来缓存的,所以只要给网址接个尾巴,浏览器就会认为是新网址,就会从网上重新下载数据了。当然,如果下次再次改变了网页内容,这个尾巴就要再次修改。
给css和js添加所谓版本号其实也是同一个原理。这个版本号其实就是给css和js的网址接个尾巴而已。
这个也同样适用网页里面的图片、音乐等资源,事实上只要是http协议的元素都可以利用这个办法来避开缓存实时刷新。