解决问题:当服务器配置好 Cache-Control mod_expires.so mod_header.c 后 通过浏览器访问无法进行304访问缓存。
问题版本:apache2.4,服务器开启gzip「ETag有"-gzip"」
阅读须知:本篇文章并不能保证能够解决您遇到的问题。只是记录了其中一种可能性,望知晓,谢谢。
缘由
今天把博客正式部署到服务器上面时候发现访问cdn上的js时候可以304缓存,但是访问自己服务器时候却发现全部200头返回。无法浏览器缓存js等静态内容,访问变得缓慢。
并且通过浏览器抓包发现返回的 header中的 ETag有"-gzip"后缀
方案
首先确定在apache conf文件中
LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so未被注释
在需要解决问题的根目录的.htaccess里或者apache的.conf配置文件里添加
<IfModule mod_headers.c> <FilesMatch "\.(js|css|html|htm|png|swf|pdf|shtml|xml|flv|gif|ico|jpeg)$"> RequestHeader edit "If-None-Match" "^(.*)-gzip(.*)$" "$1$2" Header edit "ETag" "^(.*)-gzip(.*)$" "$1$2" </FilesMatch> </IfModule>即可解决问题