在PHP .htaccess中启用/利用浏览器缓存

时间:2014-12-14 17:37:13

标签: apache .htaccess caching

要启用浏览缓存,我将此代码添加到 .htaccess 文件中:

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

一个问题是,当我更新我的网站时,用户必须点击CTRL+F5才能查看新内容。我想在更改/更新内容时强制浏览器重新获取资源。我是否需要标题在较早的日期到期?

在PHP中实现这一目标的最佳做法是什么(即:这是一个wordpress网站)。

1 个答案:

答案 0 :(得分:0)

这里有两个可能的问题,都很容易修复。

  1. 如果您的问题是例如更改图像时,则无法加载新图像;常见的解决方案是只在图像名称的末尾添加日期。

    例如:

      

    myimage.png

    将附加到:

      

    MYIMAGE-230215.png
          或
          MYIMAGE-1.png

    通过更改名称,它会重新获取资源。这适用于您可能需要更新的任何资源。

  2. 另一个常见问题是由ExpiresDefault "access 2 days"

    引起的

    此设置默认情况下会将您网站上所有内容的缓存设置为2天(因此这包括您的所有html)。因此,如果您更新任何HTML,则不会立即更新用户&#39;端。

    解决方案是简单地删除此行,因此缓存的唯一内容是您在.htaccess文件中指定的内容。

  3. 了解更多信息:http://www.easylinuxcommands.com/#apache