gpt4 book ai didi

apache - 如何使用 .htaccess 将缓存策略应用于特定文件?

转载 作者:行者123 更新时间:2023-12-04 01:47:25 25 4
gpt4 key购买 nike

目前,我的缓存策略如下所示:

<IfModule mod_headers.c>    
<FilesMatch "\.(css)$">
Header set Cache-Control "max-age=691200"
</FilesMatch>
</IfModule>

这会将我的 css 文件缓存 8 天。如果我想将特定文件缓存一年,我该怎么做? I saw this answer ,所以我尝试这样做:
<IfModule mod_headers.c>    
<FilesMatch "\.(css)$">
Header set Cache-Control "max-age=691200"
</FilesMatch>
<FilesMatch "bootstrap\.(css)$">
Header set Cache-Control "max-age=31536000"
</FilesMatch>
</IfModule>

以及以防万一 apache 在先到先得的基础上应用规则(<- 可能是该短语的错误使用):
<IfModule mod_headers.c>    
<FilesMatch "bootstrap\.(css)$">
Header set Cache-Control "max-age=31536000"
</FilesMatch>
<FilesMatch "\.(css)$">
Header set Cache-Control "max-age=691200"
</FilesMatch>
</IfModule>

但是当我通过页面速度洞察运行页面时,bootstrap.css 文件的缓存策略保持不变。我还清除了自己的缓存,打开了一个隐身选项卡,并检查了开发工具的网络选项卡内的缓存策略,引导文件的缓存策略仍然是 8 天。

最佳答案

<Files><FilesMatch>部分按照它们在配置文件中出现的顺序进行处理,这意味着应用的最后一个将优先,因此您的第一次尝试应该有效:

<IfModule mod_headers.c>    
<FilesMatch "\.(css)$">
Header set Cache-Control "max-age=691200"
</FilesMatch>
<FilesMatch "bootstrap\.(css)$">
Header set Cache-Control "max-age=31536000"
</FilesMatch>
</IfModule>

我已经对其进行了测试,它按预期工作:
$ curl -s -v example.com/bootstrap.css 2>&1 | grep Cache-Control
< Cache-Control: max-age=31536000
$ curl -s -v example.com/foo.css 2>&1 | grep Cache-Control
< Cache-Control: max-age=691200

关于apache - 如何使用 .htaccess 将缓存策略应用于特定文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54719621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com