具有最佳缓存控制的网站

Mic*_*ter 6 php .htaccess caching header

我的目标
我想让浏览器缓存我的整个网站,但只在我更改了一个或多个文件时才下载静态内容.

我的情况
经过一些研究,我找到了一种方法.这是添加Far Future Expires Header到我的htaccess文件并使用该filemtime()函数向我的文件添加查询字符串.

问题
当我点击地址栏并在firefox中输入我的网站地址时,Firebug会显示
38.3 KB (36.4 KB from cache)

当我在firefox中按F5时,Firebug会显示:
241.1 KB (10.9 KB from cache)

现在我尝试对谷歌做同样的事情,他们正在发回HTTP标题304.我已经阅读了很多关于ETag和Last Modified标题的内容,但我听到很多人都说他们并不是真的可靠.

我的问题
如果我想用我的静态内容发送HTTP标头304,如果用户按下F5,如谷歌,那么最佳解决方案是什么?

我问这个问题是因为我经常访问一个网站并使用F5查看是否有新的信息.不要重新加载图像等.


更新
似乎Firefox正在控制缓存的使用方式,我也想在用户按下F5时使用缓存.

vbe*_*nce 2

重新加载的真正目的是重新加载页面。如果浏览器能够在用户明确要求时忽略缓存,那么服务器端标头就没有魔力了。

Google 的解决方案是检查抓取工具是否发送了 If-Modified-Since 标头:

if ($_SERVER["HTTP_IF_MODIFIED_SINCE"]) {
    header("HTTP/1.0 304 Not Modified");
    exit();
}
Run Code Online (Sandbox Code Playgroud)

这个技巧适用于浏览器,但不适用于强制重新加载模式,例如 Firefox 的 SHIFT+RELOAD。