@TitNIk

Как включить gzip (deflate) сжатие SVG?

Доброго вечера. Вписал вот подобный код в .htaccess для включения gzip:
<IfModule mod_deflate.c>
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>

  <IfModule filter_module>
    FilterDeclare   COMPRESS
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
	FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
    FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
    FilterChain     COMPRESS
    FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
  </IfModule>

  <IfModule !mod_filter.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml
    AddOutputFilterByType DEFLATE application/atom+xml
	AddOutputFilterByType DEFLATE image/svg
    AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject
    AddOutputFilterByType DEFLATE application/x-font-ttf font/opentype
  </IfModule>
</IfModule>


Все ок, кроме одного - не сжимает svg. Нужные строчки вроде бы прописал, но все равно не работает. Погуглил, подобная проблема у многих, но решения так и не нашел. Может подскажите что-нибудь? Заранее спасибо!
  • Вопрос задан
  • 4609 просмотров
Пригласить эксперта
Ответы на вопрос 4
No1_48
@No1_48
Мне помог такой вариант, PageSpeed Insights перестал жаловаться на сжатие svg

# Принудительное сжатие для исковерканных заголовков.

SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding


# Сжимать исходящие данные с одним из следующих MIME типов
# (для Apache ниже версии 2.3.7 не нужно включать `mod_filter`
# и вы можете удалить строки `` и ``
# так как `AddOutputFilterByType` все еще есть в ядре Apache).

AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/x-web-app-manifest+json \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml

код взят отсюда.
Ответ написан
Комментировать
Mark54
@Mark54
Web-developer
svg это же изображения, сожмите вручную.
https://habrahabr.ru/post/170509/
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега htaccess
в свое время проблема была аналогичная, я решил ее банально просто ложил свг прям в html
Притом как показали замеры производительность от этого даже выиграла.
Ответ написан
Комментировать
@viarda
Тема старая, но в ТОПе Яндекса.
Может кому поможет.

Мы всем на VDS делаем вот так: https://viarda.ru/still/info/nastroyka-servera/isp...
В .htaccess пишем так:
AddType     image/svg+xml              svg svgz
AddEncoding gzip                       svgz

<IfModule mod_deflate.c>
  # Включаем deflate для не стандартных заголовков:
  # http://developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
  <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
      SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
      RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
    </IfModule>
  </IfModule>
  <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE text/plain text/css \
    								application/json text/javascript application/javascript application/x-javascript text/x-js text/ecmascript application/ecmascript text/vbscript text/fluffscript \
    								text/xml application/xml text/x-component \
    								application/xhtml+xml application/rss+xml application/atom+xml \
    								image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
  </IfModule>
</IfModule>


Т.е. сначала на сервере разрешаем сжатие в gzip, а далее через .htaccess управляем этим.
Итог: скорость загрузки выше, все тесты gzip (deflate) проходят успешно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы