Apache .htaccess: обслуживать предварительно сжатые шрифты @ font-face - PullRequest
2 голосов
/ 06 марта 2012

Мне нужен Apache для обслуживания предварительно сжатых шрифтов (без использования deflate).

Мой .htaccess в папке / path_to / fonts / выглядит как

RewriteEngine On
RewriteBase /path_to/fonts/
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*


RewriteRule (.*)\.ttf $1.ttf.gz


AddEncoding x-gzip gz

RemoveType application/x-gzip .gz

Заголовки ответа:

Accept-Ranges   bytes
Connection  Keep-Alive
Content-Encoding    **gzip**
Content-Length  **31709**
Content-Type    **text/plain**
Date    Tue, 06 Mar 2012 18:14:51 GMT
Etag    "7200000008e241-7bdd-4ba954a7395a8"
Keep-Alive  timeout=5, max=99
Last-Modified   Tue, 06 Mar 2012 16:11:08 GMT
Server  Apache/2.2.11 (Win32) PHP/5.2.9
Vary    Accept-Encoding 

Длина содержимого говорит 31709, это будет сжатый размер, но я не могу его загрузить.

Не могли бы вы дать подсказку?

1 Ответ

0 голосов
/ 11 марта 2013

Вот мое решение.Это немного больше в основном польский.

Он не устанавливает тип и кодировку, если клиент не поддерживает gzip.Также объявляет используемые модули, поэтому ничего не происходит, если поддерживаются не все модули.

Структура папки:

fonts/  
  Shanti-Regular.ttf.gz  
  Federo-Regular.ttf.gz  
  Shanti-Regular.ttf  
  Federo-Regular.ttf  
  .htaccess  

Тогда .htaccess содержит:

# Rewrite URLs to add gzipped version of font when it exits.
<IfModule mod_rewrite.c>
<IfModule mod_mime.c>
  RewriteEngine on

  #Serve gzip compressed TTF files if they exist and the client accepts gzip.
  RewriteCond %{HTTP:Accept-encoding} gzip
  RewriteCond %{REQUEST_FILENAME}\.gz -s
  RewriteRule ^(.*)\.ttf $1\.ttf\.gz [QSA]

  # update the response header of compressed file
  # makes browser think mod_gzip did it.
  <FilesMatch "\.ttf\.gz$">
    AddEncoding gzip .gz
    ForceType "application/x-font-ttf"
  </FilesMatch>

</IfModule>
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...