【问题标题】:Enable/Leverage Browser Caching in PHP .htaccess在 PHP .htaccess 中启用/利用浏览器缓存
【发布时间】:2015-02-24 01:45:17
【问题描述】:

为了启用浏览缓存,我将此代码添加到 .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 网站)。

【问题讨论】:

    标签: apache .htaccess caching


    【解决方案1】:

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

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

      例如:

      我的图片.png

      将被附加到:

      myimage-230215.png

      myimage-1.png

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

    2. 另一个常见问题是由以下原因引起的:ExpiresDefault "access 2 days"

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-13
      • 2012-10-13
      • 2014-12-24
      • 2011-10-15
      • 2017-01-20
      相关资源
      最近更新 更多