4

我试图在我的 htaccess 文件中设置一些缓存控制选项。

目前它看起来像这样:

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$">
Header set Cache-Control "max-age=2592000, public, must-revalidate"
Header unset ETag
FileETag None
</FilesMatch>

但是我读到了(并想添加)Header unset Last-Modified,所以它会是这样的:

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$">
Header set Cache-Control "max-age=2592000, public, must-revalidate"
Header unset Last-Modified
Header unset ETag
FileETag None
</FilesMatch>

但是,使用这个(根据 Firebug)根本不会从缓存中加载任何内容(而第一种技术会加载所有内容)

难道我做错了什么?语法似乎是正确的。

一种。

4

2 回答 2

4

语法是正确的,但用法不正确。根据此处找到的“速度提示:删除 Last-Modified Header”:http ://www.askapache.com/htaccess/apache-speed-last-modified.html

如果您删除 Last-Modified 和 ETag 标头,您将完全消除 If-Modified-Since 和 If-None-Match 请求及其 304 Not Modified 响应,因此文件将保持缓存而不检查更新,直到 Expires 标头指示新内容可用!

还:

通过从静态文件(图像、javascript、css)中删除 ETag 标头和 Last-Modified 标头,浏览器和缓存将无法验证文件的缓存版本与真实版本。通过还包含 Cache-Control 标头和 Expires 标头,您可以指定将某些文件缓存一段时间,然后您会神奇地(我保证这是一个非常独特的技巧)消除任何验证请求!

有关更多详细信息,请参阅原始链接。

于 2010-09-18T09:58:18.730 回答
0

删除的一个用例Last-Modified是,如果资源使用新cache-control: immutable指令,该指令指示缓存该资源永远不会更改(例如,当使用散列控制文件版本时)。微优化...

于 2018-07-16T15:26:07.880 回答