【发布时间】: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。但我不知道为什么。