我有一个使用大量SVG作为背景图片的网站。许多SVG文件都附加了查询字符串,用于动态更改颜色(通过一些PHP)。例如,我的CSS可能会调用这样的SVG:
background-image: url("/images/sprite.svg?color=00ffff");
我现在意识到这些带查询效果的SVG没有被缓存,这使得页面加载速度非常慢而且笨重!
我尝试将此添加到我的.htaccess:
<FilesMatch "\.(svg)">
ExpiresActive on
ExpiresDefault "access plus 1 month"
</FilesMatch>
但似乎没有这样做 - 查看Chrome开发工具的网络标签显示它们仍有大小,而不是“来自缓存”。
实际上是否可以告诉浏览器使用查询字符串缓存SVG?我的htaccess规则是错的吗?或者还有其他原因导致Chrome不会缓存它们吗?
答案 0 :(得分:0)
您应该使用ExpiresByType
指令。见mod_expire:
ExpiresActive on
ExpiresByType image/svg "access plus 1 month"