利用浏览器缓存 - 更新不起作用

Posted

技术标签:

【中文标题】利用浏览器缓存 - 更新不起作用【英文标题】:Leverage browser caching - updates not working 【发布时间】:2016-08-13 13:59:32 【问题描述】:

我正在使用 Google 页面速度洞察来提高性能,但无论我做什么,我都无法让“利用浏览器缓存”消失。

我已经修改了几篇在线文章中描述的 htaccess 文件,并添加了我可以添加的所有组合。在页面洞察中,它抱怨 CSS/PNG/JS/JPG 文件。

# Expires Caching Start #
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access 2 day" 
ExpiresByType text/html "access 2 day" 
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month" 
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresDefault "access 1 month"
ExpiresByType text/x-javascript "access plus 1 month"  
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType text/x-javascript "access 1 month"
</IfModule>
# Expires Caching End # 

【问题讨论】:

【参考方案1】:

您似乎在许多行中都在“访问加 1 个月”中缺少您。 默认应该是你的可读性的第二行

这是 h5bp 模板的一部分:

ExpiresActive on
ExpiresDefault                                      "access plus 1 month"
ExpiresByType text/css                              "access plus 1 year"
ExpiresByType text/html                             "access plus 0 seconds"
ExpiresByType application/javascript                "access plus 1 year"
ExpiresByType application/x-javascript              "access plus 1 year"
ExpiresByType text/javascript                       "access plus 1 year"

... https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess

【讨论】:

【参考方案2】:

如果您使用的是 Apache,您可能希望运行这些,因为这对我有用:

sudo a2enmod headers
sudo a2enmod expires
service apache2 restart

您可能还想试试这个代码:

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
## EXPIRES CACHING ##

【讨论】:

该代码与我已有的代码似乎没有太大不同。【参考方案3】:

不妨试试这个:

# 1 Month for most static assets
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

【讨论】:

以上是关于利用浏览器缓存 - 更新不起作用的主要内容,如果未能解决你的问题,请参考以下文章

由于浏览器缓存,PHP 标头 301 重定向不起作用

Chrome浏览器中autocomplete="off"不起作用解决方案

django开发中利用 缓存文件 进行页面缓存

expires_in max-age 缓存控制不起作用

自动缓存更新在 react apollo 中不起作用

nginx静态资源缓存