之前在《PHPnow中开启apache的浏览器缓存(max-age)功能》一文中,余斗主要讲了如何开启apache服务器的缓存功能,然而很多时候线上如果缓存静态文件能够提高服务器性能和用户体验,但是在开发阶段,如果开启静态文件缓存,不利于开发测试
有时候更改了静态文件,发现页面不起作用,然后清空了浏览器缓存页面也不起作用。每次必须重启apache服务器才可以,最终想到可能是静态文件缓存导致的。
关闭apache静态文件缓存只需要更改httpd.conf,注释掉如下扩展:
#LoadModule expires_module modules/mod_expires.so
#LoadModule headers_module modules/mod_headers.so
在页面中设置如下属性:
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="0">
附:nginx静态文件设置方法 nginx的conf中:
#静态数据保存时效
location ~ \.html$ {
proxy_pass http://www.hello.com;
proxy_redirect off;
proxy_cache cache_one;
#此处的cache_one必须于上一步配置的缓存区域名称相同
proxy_cache_valid 200 304 12h;
proxy_cache_valid 301 302 1d;
proxy_cache_valid any 1m;
#不同的请求设置不同的缓存时效
proxy_cache_key $uri$is_args$args;
#生产缓存文件的key,通过4个string变量结合生成
expires 30d;
#其余类型的缓存时效为30天
proxy_set_header X-Forwarded-Proto $scheme;
}
资源均来自第三方,谨慎下载,前往第三方网站下载