解决问题:当服务器配置好 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>
    

    即可解决问题

参考资料
https://www.cnblogs.com/baiban/p/5167530.html