TypeFront üzerinde barındırılan bir fontu gömmek için @ font-face kullanıyorum ancak fontum tarayıcı tarafından önbelleklenmiyor (Firefox 3.6.13 ve Epiphany 2.30.2). Bu, Firefox ve MFOMT (Kaybolan Metinin Anlık Flash'ı, bir tanesini hazırladım) sayfasında FOUC (her defasında bir tane hazırladım) üzerinde FOUC/MFOMT ile ilk defa yüklendiğimde Epiphany'de bir FOUC/MFOMT'a neden oluyor sayfa yüklenir, ancak her zaman değil).font font fontlarını önbelleğe alma
Mümkünse yazı tipini CSS'de Base64'e gömmek zorunda kalmaya çalışıyorum ve yazı tipini kendime ev sahipliği yapamıyorum.
Yazı tipi neden önbelleğe alınmıyor? Bu sorunu olmayan herhangi bir alternatif ücretsiz yazı barındırma hizmeti var mı?
Test sayfası:
<!DOCTYPE html>
<html>
<head>
<title>TypeFront Cache Test</title>
<style>
@font-face {
font-family: "Journal";
src: url("http://typefront.com/fonts/825588825.ttf") format("truetype");
}
h1 {
font-family: "Journal";
}
</style>
</head>
<body>
<h1>Test text</h1>
</body>
</html>
Ben Firebug gözlemlerseniz, net sekme yazı yerine "304 Not değiştirme" ya da diğer endikasyonlar, "200 OK" Her zaman sayfa yüklendiğinde ile servis edildiğini gösterir Önbelleğe alınmış bir yazı tipinin kullanılmakta olduğu (ör. tarayıcı, bir HTTP isteğini bile denememektedir).
HTTP üst:
Response Headers
HTTP/1.1 200 OK
Server: nginx
Date: Sat, 26 Feb 2011 12:57:18 GMT
Content-Type: font/ttf
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Status: 200 OK
Content-Transfer-Encoding: binary
Access-Control-Allow-Origin: *
Content-Disposition: attachment; filename="typefront_735a460727.ttf"
Cache-Control: max-age=31536000
Expires: Sun, 26 Feb 2012 12:57:18 GMT
Content-Encoding: gzip
Request Headers
GET /fonts/825588825.ttf HTTP/1.1
Host: typefront.com
User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: null
İstekte if değiştirilmiş bir başlık yok, bu nedenle sunucu "değiştirilmedi" seçeneğini belirleme seçeneğine sahip değil. Sorun müşteri ile: Gelecekte bir Expires başlığı bulunduğundan neden bir istek gönderiyor? Neden no-değiştirilmiş-üstbilgi ve/veya Hayır-Yok-Eşleştirme üstbilgisi neden yok? Tamam, bu açıklanabilir, yanıtta bir etag yoktur, bu yüzden zaman damgası temellidir, ancak bu yeterli olmalı ve son değiştirilme yok, bu nedenle de değiştirilmiş olsun. Fakat yine de, (uzak) geleceğin sona ermesi, herhangi bir (ikinci) talebin yine de gerçekleşmesini engellemelidir. –
Ayrıca, Firefox'ta da MFOMT var, ancak fark ettiğim gibi, Firebug'un aktif olması nedeniyle. Hayır Firebug => yazı tiplerinde 304 (yerel olarak teslim edilir). – Claudio