【问题标题】:browser-caching works except for svg-images浏览器缓存工作除了 svg-images
【发布时间】:2015-12-14 19:50:35
【问题描述】:

我在浏览器缓存 SVG 文件时遇到问题。

在我的 .htaccess 中,一切似乎都很好(至少它相当完整),但无论我尝试什么,似乎 SVG 图像都没有进入浏览器的缓存。

<IfModule mod_expires.c>
    ExpiresActive On
    ...
    (various other file-types)
    ...
    ExpiresByType image/svg+xml "access plus 1 month"
    ExpiresDefault "access plus 1 month"
</IfModule>

在.htaccess中,我试过了

ExpiresByType image/svg+xml A2592000

也是,但没有任何效果。我还尝试将 mime-type 更改为 text/svg+xml。也不好。

什么可能导致此失败?

谢谢

【问题讨论】:

  • 您是否在响应标头中检查了您获得的 svg 被视为“image/svg+xml”?
  • 嗨,瓦尔!是的,它说«content-type: Image/svg+xml»(并且请求标头在«Pragma / Cache-Control: no-cache»下表示)如果这是对问题根源的提示,那就太好了...
  • 在你的回复中看到Image/svg+xml 带有大写的“I”真是太奇怪了。我不知道 mime 类型是否区分大小写。这可能不是您的问题的原因(因为在最坏的情况下您的 svg 文件应该被 ExpiresDefault... 捕获)但是您可以尝试添加一个 expiresByType Image/svg+xml ... 你有一个 AddType image/svg+xml .svg指令?您是否查看了 apache 模块以查看 svg 文件是否还有其他规则?
  • 我必须承认我的智慧已接近尾声……我怀疑 .htaccess 有问题,而不是 apache 的配置。所以我用默认的 bootstrap.htaccess 交换了我的 .htaccess,瞧!没有更多的缓存投诉......
  • 我有类似的情况,但没有设置 ExpiresActive。 ExpiresDefault 适用于除 svg 之外的所有文件类型。添加 ExpiresActive 使其也适用于 svg。但我不知道为什么。

标签: .htaccess caching svg


【解决方案1】:

根据@Ariel 的建议,我检查了我的 .conf 文件,但我仍然遇到同样的问题,尽管我添加了

ExpiresActive on
ExpiresDefault  "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType image/svg  "access plus 1 month"

即使它对 svg 字体有效(我假设)。我没有 .htaccess,所以一切都在 .conf 文件中完成。在那张纸条上,我也有

    <FilesMatch "\.(jpg|png|css|js|swf)$">
     Header unset Cache-Control
    </FilesMatch>

但据我所知,这甚至不会触及 svg 文件。谢谢

【讨论】:

    猜你喜欢
    • 2015-07-13
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2016-02-18
    相关资源
    最近更新 更多