在apache服务器端控制文件缓存的设置
网站必不可少的得有图片,css,js等文件。
而这些文件通常是会被浏览器缓存的,但是当你修改(更新)了这些文件,如果告诉浏览器去从服务器上重新下载呢?
下面提供几种方法:
1.通常写css的或者js的方式都是
1 2 3 | <script type="text/javascript" src="http://xxx.com/js/xxx.js"> </script> <link href="http://xxx.com/style/xxx.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> |
这个你每次修改的话,可以在后面加不同的参数,浏览器会认为是不同的文件,会从服务器上重新下载。
例如:
1 2 3 | <script type="text/javascript" src="http://xxx.com/js/xxx.js?v=1"> </script> <link href="http://xxx.com/style/xxx.css?v=1" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> |
如此这般,当然参数的名字和值你可以随便瞎胡写,只要是修改前后不一样就可以,比如修改前是?v=1,那么修改后写成?v=2,浏览器就会重新从服务器上下载文件而不会读取文件缓存。
2.通过apache设置FileETag
具体的文档请参考:
lamp.linux.gov.cn/Apache/ApacheMenu/mod/core.html#fileetag
这个是怎么说呢?
FileTag是放在apache的httpd.conf或者.htaccess等apache的配置文件中的。
FileETag INode MTime Size
的意识是说放文件的索引节点,修改时间,文件大小发生改变时,要求浏览器从服务器重新下载文件。
你也可以使用
FileETag MTime
来告诉apache,当文件修改时间发生改变时,通知浏览器从服务器重新下载文件。
个人还是认为使用Mtime比较靠谱儿。。。
3.这个功能就很NB啦。。。
这个功能可以根据不同的文件扩展名,按照时间等方式来设置,但是这种方式也是比较麻烦的,需要apache服务器加载mod_headers和mod_expires模块来配合使用。
这个方法我还没有使用过,所以也不敢误人子弟,如果有需要的朋友可以参考下面的两篇文档:
Leave a Message
No Messages
RSS feed for comments on this post. TrackBack URI
我的简介: 谁说tmd巨蟹座傻来的?我就是tmd巨蟹里边儿最聪明的!!!