控制缓存过期时间

6

通过运行我的网页通过Google网站管理员工具的PageSpeed分析器,它向我报告说我的所有资源没有被缓存。下面是从H5BP直接获取的我的.htaccess文件中的代码。我是否正确地假定下面的到期时间设置正确,并且我的实现有问题或者我必须为每个文件名设置显式的到期时间而不是广泛的概括?

# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------

# These are pretty far-future expires headers.
# They assume you control versioning with filename-based cache busting
# Additionally, consider that outdated proxies may miscache
#   www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week".

<IfModule mod_expires.c>
  ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
  ExpiresDefault                          "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
  ExpiresByType text/cache-manifest       "access plus 0 seconds"

# Your document html
  ExpiresByType text/html                 "access plus 0 seconds"

# Data
  ExpiresByType application/json          "access plus 0 seconds"
  ExpiresByType application/xml           "access plus 0 seconds"
  ExpiresByType text/xml                  "access plus 0 seconds"

# Feed
  ExpiresByType application/atom+xml      "access plus 1 hour"
  ExpiresByType application/rss+xml       "access plus 1 hour"

# Favicon (cannot be renamed)
  ExpiresByType image/x-icon              "access plus 1 week"

# Media: images, video, audio
  ExpiresByType audio/ogg                 "access plus 1 month"
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType video/mp4                 "access plus 1 month"
  ExpiresByType video/ogg                 "access plus 1 month"
  ExpiresByType video/webm                "access plus 1 month"

# HTC files  (css3pie)
  ExpiresByType text/x-component          "access plus 1 month"

# Webfonts
  ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
  ExpiresByType application/x-font-ttf    "access plus 1 month"
  ExpiresByType application/x-font-woff   "access plus 1 month"
  ExpiresByType font/opentype             "access plus 1 month"
  ExpiresByType image/svg+xml             "access plus 1 month"

# CSS and JavaScript
  ExpiresByType application/javascript    "access plus 1 year"
  ExpiresByType text/css                  "access plus 1 year"

</IfModule>
1个回答

3

看起来不错。

你要么没有安装mod_expires模块(有1/1000000的可能性),要么是其他.htaccesshttpd.conf指令在其他地方禁用了这些功能。请使用页面速度工具获取由您的文件发送的实际标头,并粘贴。


我非常确定还有另一个htaccess文件覆盖了它,因为我正在与别人共享测试服务器。虽然如此,我只是想确保我所拥有的是好的。谢谢! - Raphael Rafatpanah
我有完全相同的 .htaccess 文件(甚至包括注释,例如“Thanks Remy”)。然而,在 SEO 分析中,我也收到浏览器缓存未被利用的消息。我该如何检查以下两个问题: a)我是否已安装 mod_expires,并且 b)是否有一个覆盖? 谢谢。 - Tom Chambers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接