Domanda

Ecco un elenco di cose che ho provato in ordine casuale:

AddHandler application/x-httpd-php .otf
AddType
default_mimetype
auto_prepend_file = "otf.php"
zlib.output_compression = On
output_handler = ob_gzhandler
header("Content-type: application/octet-stream");

Anche se tutti i file PHP del server ottenere gzipped usando zlib, sostituendo l'estensione .php .otf da non funzionavano.

È stato utile?

Soluzione

Con .htaccess, si potrebbe fare in questo modo, assumendo file di font è fontfile.otf.gz, richiesta del browser che, come fontfile.otf

RewriteEngine On

#Check for browser's Accept-Encoding, remove it for force return gzipped one
RewriteCond "%{HTTP:Accept-Encoding}" "gzip.*deflate|deflate.*gzip"

#check file name is endswith otf
RewriteCond %{REQUEST_FILENAME} "\.(otf)$"

#check existance of .gz file name
RewriteCond %{REQUEST_FILENAME}.gz -s

#rewrite it to .otf.gz
RewriteRule ^.*$ %{REQUEST_URI}.gz [L]

#update some response header
<FilesMatch "\.otf\.gz$">
    AddEncoding gzip .gz
    ForceType "text/plain"
</FilesMatch>

E se file di font e il sito web è tra domini, è necessario mettere Access-Control-Allow-Origin, Firefox non verrà caricato carattere di oggetti tra domini .

  

In Gecko, font web sono soggetti alla   stessa restrizione del dominio (file dei font   devono essere sullo stesso dominio della pagina   il loro utilizzo), a meno che l'accesso HTTP   controlli vengono utilizzati per rilassarsi questo   restrizione.

Header set Access-Control-Allow-Origin *
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top