13

更新: ヘッダー リクエスト情報が原因のようです。リクエスト ヘッダーの max-age プロパティを変更するにはどうすればよいですか? ティア。


こんにちは、私は Web サイトで @font-face を使用していますが、テキストの読み込みが遅れています (おそらくページごとにフォントを読み込むため)。正しく表示するには、クライアントがフォントを一度ダウンロードする必要があることを理解していますが、すべてのページですか?

ブラウザにそのファイルを強制的にキャッシュさせる方法はありますか? または、フォントの読み込み時間を短縮する別の方法はありますか? (これはServer Faultに投稿する方が適切な質問ですか?)

前もって感謝します。最悪の場合、私は遅延を受け入れるので、「@font-faceを脱ぐ」という回答は必要ありません... ;)

追加情報:

  • Mac と Windows (XP と 7) の両方で、Safari (4) と Firefox (3.5RC1) の両方でこれをテストしました。
  • 私がテストしたすべてのブラウザーは現在、キャッシュを許可するように設定されています (デフォルトでオンになっています)。
  • URL は動的ではなく、単純に「/fonts/font.otf」です。
  • ページがフォントをロードして正しく表示するので、フォント URL は正しいですが、通常より遅くなります。
  • リクエストヘッダー:

    Cache-Control:max-age=0
    If-Modified-Since:Wed, 24 Jun 2009 03:46:28 GMT
    If-None-Match:W/"484d9f2-a5ac-46d10ff2ebcc0" リファラー
    : http://testurl.com /
    User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6; en-us) AppleWebKit/530.13 (Gecko のような KHTML) バージョン/4.0 Safari/530.15

  • 応答ヘッダー:

    接続: キープアライブ
    日付: 2009 年 6 月 25 日 (木) 02:21:31 GMT
    Etag: "484d9f2-a5ac-46d10ff2ebcc0"
    キープアライブ: タイムアウト = 10、最大 = 29
    サーバー: Apache/2.2.11 (Unix) mod_ssl/ 2.2.11 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

4

2 に答える 2

4

ブラウザに何かを強制的にキャッシュさせることはできません。推奨するだけです。正しい有効期限ヘッダーを含むフォント ファイルがキャッシュされない理由が思い浮かびません。

  • これはブラウザのバグです (どのブラウザかはわかりません)
  • キャッシュ制御ヘッダーが見つからないか間違っています
  • お使いのブラウザは何もキャッシュしないように設定されています (画像はキャッシュされますか?)
  • フォント URL は動的であるため、ブラウザは各リクエストが異なるリソースに対するものであると認識します
  • フォント フェイス ファイルが実際に見つからないか、URL のスペルが間違っています。
  • 遅延はフォントのダウンロードが原因ではありません (これが問題であると推測すると言っていました)

より多くの情報が整っていると思います。

EDIT:キャッシュ制御を設定するには、サーバーと言語固有のものです。Apache でのキャッシングについては、mod_expiresを参照してください。

于 2009-06-24T04:14:21.530 に答える
2

あなたのフォントファイルはキャッシュ可能ですか? 他の静的コンテンツと同様に、それらには遠い将来の有効期限日が必要であり、キャッシュできるようにヘッダーを構成する必要があります。サーバー ファームでフォントをホストしている場合は、ファーム内のすべてのサーバーで etag ヘッダーが正規化されていることを確認する必要があります。そうしないと、フォントに対する後続の要求によって、代替サーバーからの再ダウンロードが強制される可能性があります。同じデータが別のサーバーから既にダウンロードされていても。

于 2009-06-24T04:03:24.817 に答える