【问题标题】:Set cache expiration?设置缓存过期?
【发布时间】:2011-10-31 08:32:55
【问题描述】:

我用 Chrome 测试了我的网站,得到了以下建议:

The following resources are missing a cache expiration. Resources that do not specify an expiration may not be cached by browsers:
style.css
jquery.marquee.js
jquery.marquee.css
logo.png

如何设置这些文件的缓存过期时间?

【问题讨论】:

    标签: html caching


    【解决方案1】:

    关注Yahoo! Best Practices for Speeding Up Your Web Site, 你应该Add an Expires or a Cache-Control HeaderConfigure ETags

    您实际如何配置服务器以执行此操作取决于您在问题中提供的信息。

    【讨论】:

      【解决方案2】:

      如果这个问题与缓存 javascript 或 css 相关,它们是您的 tomcat 应用程序目录的一部分;您可能想检查 /conf/web.xml 文件。

      通常这里可用的 mime 映射是

      js
      应用程序/javascript

      在 apache 中,默认指令是
      ExpiresByType text/javascript "access plus "

      您可能希望将 apache 指令更改为 application/javascript 或将 tomcat mime 映射更改为 text/javascript,这会将过期设置为您的时间范围。

      【讨论】:

        【解决方案3】:

        设置缓存过期的方法之一是使用 .htaccess 文件。

        下面的代码将为其各自的文件类型设置过期时间,例如CSS 文件的有效期为 14 天。

        <IfModule mod_expires.c>
           ExpiresActive on
           ExpiresDefault "access plus 1 month"
           ExpiresByType application/javascript "access plus 1 year"
           ExpiresByType image/x-ico "access plus 1 year"
           ExpiresByType image/jpg "access plus 14 days"
           ExpiresByType image/jpeg "access plus 14 days"
           ExpiresByType image/gif "access plus 14 days"
           ExpiresByType image/png "access plus 14 days"
           ExpiresByType text/css "access plus 14 days"
        </IfModule>
        

        【讨论】:

        • 有没有办法在我需要时清除这些缓存(例如更新后)?
        • @Reign.85 :您不能强制浏览器清除缓存。您可以使用文件的版本控制,例如 style.cssstyle.css?v1.1 或重命名文件将解决问题。
        • 如果我从 .htaccess 中删除该代码,浏览器是否会获得最新版本,而不重命名文件(或使用版本控制)?
        • 否(需要版本控制),由于您的最后一个缓存文件在缓存中,因此浏览器不会向服务器请求该文件。只有当缓存过期或强制重新加载(CTRL + F5)时,浏览器才会从服务器请求该文件。
        猜你喜欢
        • 2012-03-18
        • 2013-11-20
        • 2017-05-17
        • 1970-01-01
        • 2015-09-03
        • 1970-01-01
        • 2011-02-10
        • 2011-12-27
        • 2022-01-05
        相关资源
        最近更新 更多