【问题标题】:Is it problematic to cache files for too long?缓存文件太久有问题吗?
【发布时间】:2012-06-29 05:53:39
【问题描述】:

前几天我发现了https://developers.google.com/speed/pagespeed/,现在我的网站页面速度从 ~75 提高到 ~95。

它建议的最后几件事之一是我:

Leverage browser caching: Setting an expiry date or a maximum age in the HTTP headers
for static resources instructs the browser to load previously downloaded resources 
from local disk rather than over the network.

我的主要 javascript 和 css 文件的缓存时间设置为 2 天,Google 建议我将其设置为至少 1 周。他们还建议我对 html 和 php 文件做同样的事情。

如果我决定对网站进行大型更改并且他们昨天刚刚缓存了我的网站(1 周),我的用户会发生什么?他们会不会在 1 周后才能看到我网站上的更改?

另外,由于我的网站包含一个控制面板并且有一些动态生成的 PHP 页面,是否有任何理由缓存其中的任何一个?我的服务器不会在每次登录他们的帐户时仍然通过 php 脚本搅动并生成新内容吗?

【问题讨论】:

    标签: php apache caching header http-headers


    【解决方案1】:

    您可能不想在访问者浏览器中缓存您的 HTML 和 PHP。但是,您可能希望将其缓存在您拥有更多控制权的层中,例如使用 APC 和反向代理(如 Varnish)进行 PHP 操作码缓存。

    对于静态资产,例如 JavaScript 和 CSS 文件,将它们缓存一年或更长时间应该是安全的。如果您对它们进行更改,您可以将其 URL 更新为 mystyles.css?v=123,浏览器会认为它与 mystyles.css?v=122 甚至只是 mystyles.css 完全不同。

    【讨论】:

    • 好的,所以当我更新 css 文件时,我必须更改它们的 URL,否则客户端将永远看不到新的 css 文件(直到它们过期?)。
    • 没错。例如,您可以使用版本号或您正在部署的提交 ID。
    猜你喜欢
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 2010-11-28
    • 1970-01-01
    相关资源
    最近更新 更多