2014-02-19 65 views
5

我有一個新的MVC 5項目,我試圖讓FontAwesome從_Layout頁面顯示圖標。它可以在Chrome,Firefox甚至Visual Studio中的頁面檢查器中正常工作。當我在IE 11中啓動該網站時,它只顯示一個空白區域。無法獲得FontAwesome在IE 11中使用MVC 5工作

我試過到目前爲止:

  • 確保該字體awesome.css和字體下載到瀏覽器
  • 檢查路徑,其中的字體所在的目錄是正確的
  • 從BundleConfig
  • 加載,只是把鏈接直接在佈局網頁
  • 使用的NuGet安裝FontAwesome上嘗試過的的NuGet HTML輔助的FontAwesome
  • 嘗試添加MIM E型的字體,在web.config
  • 使用
  • 試過標記的幾種變化
  • 驗證了網絡調試
  • 在控制檯中沒有錯誤或404的CDN和完全合格的路徑,而不是相對鏈接嘗試

我不知道還有什麼我可以嘗試和感覺像我花了很多時間WAAAY試圖讓一些圖標工作。這只是令人沮喪,因爲該網站在Chrome和Firefox中看起來非常出色。

我正在使用從WrapBootstrap下載的模板,但它們的示例在IE 11中工作,並且我試圖儘可能模仿它們的標記。

下面是我使用的佈局頁面中的標記,它直接來自他們的模板,它可以在FF/Chrome中使用。

<i class="icon-dashboard"></i> 

,我試圖

<i class="fa fa-dashboard"></i> 

故障排除任何指導,將不勝感激。

+0

沒有,如果你從CDN <鏈接HREF =「// netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-得到fontawesome它的工作awesome.css「rel =」stylesheet「> –

+0

不,我試過並得到了相同的結果。適用於Chrome/FF,但不適用於IE。 –

+0

這並不是那麼複雜。如果它適用於Chrome和Firefox,它將在IE11中運行。我的猜測是,你已經在某些時候將渲染引擎切換到IE7並忘記了,偶然地點擊了兼容模式按鈕(呈現爲IE7),或者以其他方式工作在兼容模式下(取決於您的本地或GP設置,如果這是一臺工作機器,兼容模式可能是本地和/或內部網站的默認設置)。 –

回答

2

這並不是那麼複雜。如果它適用於Chrome和Firefox,它將在IE11中運行。我的猜測是,你已經在某些時候將渲染引擎切換到IE7並忘記了,偶然地點擊了兼容模式按鈕(呈現爲IE7),或者以其他方式工作在兼容模式下(取決於您的本地或GP設置,如果這是一臺工作機器,兼容模式可能是本地和/或內部網站的默認設置)。

+1

謝謝!我把頭髮拉出了一天(這是爲了Glyphicons,而不是FontAwesome)。 SO和其他地方的大多數命中都是關於MIME類型,字體庫位置等,而且這些都很好。它在IE上對本地主機工作,但不是機器名稱。在Chrome和Firefox中工作。事實證明,我正在開發一個Intranet應用程序,並且我們工作的IE策略默認情況下爲Intranet站點啓用了兼容性視圖。該修復(因爲我們依賴於許多其他應用程序的行爲)是使用''方法。 – Dullroar

+0

值得一提的是,您的基礎架構團隊可以簡單地管理需要兼容模式的站點列表,不管是Intranet還是非Intranet列表,而不是強制Intranet上的所有內容都使用它。這隻比單擊一個複選框並去吃午餐更困難。 –

+0

是的,但在我們的案例中,該列表將是「大多數Intranet」。此時,在構建新應用程序時,將元標記逐個添加到主/佈局頁面會更容易。希望未來我們的LOB應用程序的供應商將趕上21世紀,然後我們可以開始制定兼容性查看例外情況而不是常態。我只是希望有一種方法可以提高搜索排名中的SO問題和答案! – Dullroar

2

我剛剛遇到了這個問題,但發現它實際上是由字體文件駐留在不同的子域中引起的。在提供字體時添加Access-Control-Allow-Origin標題可解決問題。

阿帕奇htaccess的片斷

<FilesMatch "\.(ttf|otf|eot|woff)$"> 
    <IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
    </IfModule> 
</FilesMatch> 

nginx的虛擬主機文件片段

location ~* \.(eot|otf|ttf|woff)$ { 
    add_header Access-Control-Allow-Origin *; 
} 

的更多信息可以發現here(對於片段原始來源)。

0

另一種可能性(我只花了4個小時的時間進行調試)是IE-11在您不知情的情況下正在回落到較早的文檔兼容模式。要做的事情是確保自動檢測到的目標真的讀取「邊緣」。在我的情況下,它是空白的。

  • 正在下載文件。
  • MIME類型和標頭是正確的。
  • 我的文檔具有正確的兼容性元標記集。
  • 我可以衝浪很好。
  • 控制檯顯示沒有JS錯誤(或任何類型的錯誤)。

還沒有Fontawesome。

原來,如果您的HD空間不足,因爲我的虛擬機的可用臨時緩存低於一定的大小,IE默默恢復爲以兼容模式顯示所有網站(無論您的設置是關於什麼時候使用兼容模式)。

0

試試你的web.config。它應該字體 - 真棒4.7工作:

<system.webServer> 
    <staticContent> 
     <remove fileExtension=".svg" /> 
     <remove fileExtension=".eot" /> 
     <remove fileExtension=".woff" /> 
     <remove fileExtension=".woff2" /> 
     <remove fileExtension=".otf" /> 
     <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> 
     <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> 
     <mimeMap fileExtension=".woff" mimeType="application/font-woff" /> 
     <mimeMap fileExtension=".woff2" mimeType="font/woff2" /> 
     <mimeMap fileExtension=".otf" mimeType="application/font-sfnt" /> 
    </staticContent> 
</system.webServer>