在.htaccess文件中启用SVG文件的压缩和缓存

时间:2016-08-29 10:34:07

标签: .htaccess caching svg compression

当我使用Google PageSpeed Insight分析我的网站时,我应该修复一些有关压缩SVG文件的问题。

我一直在网上试图寻找解决这个问题的方法,但无论我做什么它似乎都没有用,所以我现在问你们。

我已经检查过gzip是否通过网络上的多个工具启用了,这似乎是真的。

到目前为止,我在.htaccess文件中得到了这个。

RewriteEngine On
Options FollowSymLinks

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /#/$1 [L]

AddType     image/svg+xml              svg svgz
AddEncoding gzip                       svgz

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 month"
ExpiresByType image/jpeg "access 1 month"
ExpiresByType image/gif "access 1 month"
ExpiresByType image/png "access 1 month"
ExpiresByType text/css "access 1 week"
ExpiresByType text/html "access 1 day"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType image/x-icon "access 1 month"
ExpiresByType image/svg "access 1 month"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

## FILE COMPRESSION ##
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|svg|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^image/svg+xml.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
## FILE COMPRESSION ##

# mod_deflate configuration
<IfModule mod_deflate.c>
# Restrict compression to these MIME types
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xml+rss
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE image/svg
AddOutputFilterByType DEFLATE image/svg+xml
<IfModule mod_headers.c>
    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
</IfModule>

我真的希望有人能够解决我的问题,因为我已经尝试了好几个小时了。

浏览器缓存对SVG也不起作用。也许有类似的问题?

2 个答案:

答案 0 :(得分:10)

反应非常晚,但我今天也在寻求同样的答案。

标题行的正确过期将是:

ExpiresByType image/svg+xml "access 1 month"

同样,image / svg + xml可用于gzip声明。

答案 1 :(得分:4)

请在.htaccess中使用这三个:

AddType image/svg+xml .svg
AddOutputFilterByType DEFLATE image/svg+xml

################ Expires Control ################
ExpiresByType image/svg+xml "access 1 month"

肯定会在网站上启用对svg文件的压缩。