使用HTTPS 的跨瀏覽器字體嵌入:解決IE @font-face EOT 加載問題
嵌入時遇到的關鍵挑戰之一使用@font-face 的字體可確保不同瀏覽器之間的相容性。雖然大多數瀏覽器支援各種字體格式,但 Internet Explorer 7、8 和 9 在透過 HTTPS 存取 EOT 字體時表現出特殊的行為。
嘗試透過 HTTPS 載入 EOT 字體,而 HTML 則出現問題。包含 @font-face 聲明的頁面可以託管在 HTTP 或 HTTPS 上。在這種情況下,Internet Explorer 根本無法載入 EOT 字體,即使它透過普通 HTTP 無縫運行也是如此。
要深入研究根本原因,檢查託管該字體的伺服器至關重要。在大多數情況下,伺服器應該會為 EOT 字型檔案傳送適當的內容類型標頭,即「application/vnd.ms-fontobject」。
設定 HTTP 標頭 Cache-Control 時會出現問題將字體設定為「無快取」。此設定雖然在 HTTP 環境中可以接受,但會導致 Internet Explorer 忽略透過 HTTPS 下載的字型。
對此行為最可能的解釋是,它類似於 KB 815313 中描述的行為,該行為解決了在以下情況下阻止快取的問題:透過 SSL 下載活動文件。因此,如果“Cache-Control”標頭存在並設定為“no-cache”,則刪除它應該可以解決問題。
因此,如果您觀察Internet Explorer 在開發人員工具中的字體選項中的進展情況網頁視圖而不透過HTTPS 載入EOT 字體,驗證「Cache-Control」標頭並將其刪除可能是一個潛在的解決方案。透過解決這個細微差別,您可以確保跨瀏覽器的字體嵌入一致,即使透過 HTTPS 存取字體也是如此。
以上是為什麼 Internet Explorer 7、8 和 9 無法透過 HTTPS 載入 EOT 字型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!