我正在尝试在我的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>然而,我读到(并希望添加)标题未设置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)根本不会从缓存中加载任何东西(而第一种技术加载所有内容)
我做错了什么吗?语法似乎是正确的。
一个。
发布于 2010-09-18 17:58:19
语法是正确的,但是用法不正确。根据这里的“速度提示:删除最后修改的标题”:http://www.askapache.com/htaccess/apache-speed-last-modified.html
如果您删除Last-Modified和ETag头文件,您将完全消除If - Modified - stay和If-None-Match请求及其304 Not Modified响应,因此文件将保持缓存而不检查更新,直到Expires头指示新内容可用!
另外:
通过从静态文件(图像、javascript、css)中移除ETag头文件和最后修改的头文件,
浏览器和缓存将无法验证文件的缓存版本与真实版本。通过还包括Cache-Control头和Expires头,您可以指定将某些文件缓存一段时间,并且您可以神奇地(我保证这是一个非常独特的技巧)消除任何验证请求!!
有关更多详细信息,请参阅原始链接。
发布于 2018-07-16 23:26:08
删除Last-Modified的一个用例是如果资源使用新的cache-control: immutable指令,该指令指示缓存该资源永远不会更改(例如,当使用散列控制文件版本时)。微优化..。
https://stackoverflow.com/questions/2546711
复制相似问题