且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

静态元素过期时间

更新时间:2022-09-13 16:47:30

浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了.
当你用浏览器去访问一个网站,网站里的所有静态文件,比如图片、css、js。浏览器会默认把这些缓存在电脑里,这样一个临时文件,到底要缓存多长时间,这个是在服务器上定义的,不去定义浏览器也不会把这些清空,或者浏览器有自己的一套机制清缓存,电脑管家也会发现一些缓存文件帮你清理。
缓存文件放电脑里的目的就是让你之后的访问不在去服务器上下载这些文件了。

可在浏览器上测试。多次加载出现304(因为文件没有修改过,所以不需要在服务器上重新加载),不好的就是什么时候清缓存,什么时候去在下载
增加配置
<IfModule mod_expires.c>
ExpiresActive on //打开该功能的开关
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
</IfModule>

需要expires_module
/usr/local/apache2.4/bin/apachectl -M |grep expire //这个模块有没加载(没有加载要到主配置文件去掉模块之前#)
expires_module (shared)

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

Windows测试强制刷新ctrl+F5。
规定了过期时间86400秒。过期的日期时间是什么

curl测试,看cache-control: max-age
curl -x192.168.211.149:80 111.com/qq.jpg -I
HTTP/1.1 200 OK
Date: Wed, 06 Dec 2017 05:26:11 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
Last-Modified: Fri, 03 Mar 2017 12:53:47 GMT
ETag: "e267-549d309544cc0"
Accept-Ranges: bytes
Content-Length: 57959
Cache-Control: max-age=86400
Expires: Thu, 07 Dec 2017 05:26:11 GMT
Content-Type: image/jpeg



本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2052788,如需转载请自行联系原作者