Question

Voici une liste de choses que j'ai essayé dans un ordre aléatoire:

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");

Même si tous les fichiers PHP du serveur se gzip en utilisant zlib, remplaçant l'extension .otf par .php ne fonctionnait pas non plus.

Était-ce utile?

La solution

Avec .htaccess, vous pouvez le faire comme cela, en supposant fichier de police est fontfile.otf.gz, demande de navigateur comme 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>

Et si le fichier de la police et le site web est multi-domaine, vous devez mettre Access-Control-Allow-Origin, Firefox ne se charge pas objets font cross-domain.

  

Dans Gecko, les polices web sont soumises à la   même restriction de domaine (fichiers de police   doit être sur le même domaine que la page   en utilisant les), à moins que l'accès HTTP   les contrôles sont utilisés pour assouplir cette   restriction.

Header set Access-Control-Allow-Origin *
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top