加时间戳使js,css不缓存

好多Linux + Apache的服务器都会对CSS、JS和图片这些静态的内容设置缓存,到了IE这里又会在本地做一个缓存。所以当我们更新了CSS文件之后,常常会出现客户端没有更新,导致显示出现问题。之前我一直使用时间戳参数的方法来解决:

每次更改了css文件就把参数time的值设为更改当日的日期,这样本地IE就会把它当作一个新的文件更新一次。

但是在最近做的项目中发现一个比较奇怪的问题,服务器端做了gzip压缩,到客户端第一次解压的时候没问题,第二次访问的时候ie从cache里读文件就出问题了,只能读出前面大约一两千个字节。在两台win2000+ie6的机子上重现了这个问题,XP的还没有发现。

最终的解决方案是在时间戳参数后面再加上一个.css结尾,也就是这么写:

然后就一切正常了...

大概IE在从缓存里读文件的时候还得对文件扩展名做一个判断,所以这么加一下它就认了。我自己对这个解释不甚满意,所以如果你有标准答案麻烦留个言

当然js也可以用这种方法

你可能感兴趣的:(web开发)