我正在使用.htaccess文件来设置网站的标题。我想知道如何在对文件缓存进行修改后将文件缓存设置为过期。这可能吗?
即。这有用吗?
ExpiresDefault "modification"
换句话说,我希望缓存保持不变,直到从服务器修改文件为止。
答案 0 :(得分:2)
过期修改将缓存设置为在最后一次修改文件后的某个时间到期。即使您的文件在设置的缓存时间限制内再次被修改,已经缓存该文件的客户端也不会查找新版本。 Apache Expiration包含有关过期模块的信息。
以下是一个例子:
#BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(css|js)$">
ExpiresDefault "modification plus 4 weeks"
</filesMatch>
</ifModule>
# END Cache-Control Headers
如果您的css文件在1周前被修改,则缓存将在3周内过期而不是4周。
那么如何在文件缓存后显示新修改的css文件?
如果您修改了css文件,则更改将不显示在缓存的浏览器中,直到缓存过期。解决此问题的一种方法是更改缓存的css文件的名称。 (示例重命名为main1.css - &gt; main2.css)
答案 1 :(得分:0)
我认为你对expires标题有错误的想法。 expires头告诉接收者它可以在本地缓存文件多长时间。在此期间之后,接收方必须重新请求资源。如果服务器说资源将在一小时后过期,但资源会在一分钟后更改。这将需要另外59分钟,直到接收器将获取此修改版本。服务器无法通知接收方资源过早过期。