【问题标题】:.htaccess to cache SVGs with query strings.htaccess 使用查询字符串缓存 SVG
【发布时间】:2016-01-13 06:27:14
【问题描述】:

我有一个使用大量 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 不会缓存它们的其他原因?

【问题讨论】:

    标签: .htaccess caching svg


    【解决方案1】:

    您应该改用ExpiresByType 指令。见mod_expire

    ExpiresActive on
    ExpiresByType image/svg "access plus 1 month"
    

    【讨论】:

    • 谢谢 arainone。实际上我刚刚意识到我在原始帖子中犯了一个错误:这些图像实际上没有被称为 sprite.svg?color=00ffff,它们被称为 sprite.php?color=00ffff - 所以肯定没有被缓存因为它们是 PHP 文件。所以我只是将上面代码的第一行更改为“”,这样就可以了。抱歉——这是一个愚蠢的错误!
    • @FrankHarrison 也许更新您的问题并发表您的评论作为答案?
    猜你喜欢
    • 1970-01-01
    • 2021-02-21
    • 2017-09-14
    • 1970-01-01
    • 2018-10-21
    • 2013-02-19
    • 2016-10-05
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多