IIS 中的 FontAwesome 错误

FontAwesome error in IIS

当在 IIS 运行 中

时,我的 ASP.Net MVC 页面出现以下错误

downloadable font: download failed (font-family: "FontAwesome" style:normal weight:normal stretch:normal src index:1): status=2147746065 source: http://localhost/MyApp/fonts/fontawesome-webfont.woff?v=4.1.01 sharedStyle:1:126778

本地同一页面运行,一切正常。所有文件都已部署 FA 的路径是 C:\inetpub\wwwroot\MyApp\Content\Template\font-awesome-4.1.0

我尝试了 Why font-awesome works on localhost but not on web ? and ASP.NET MVC4 Bundling with Twitter Bootstrap

中的所有解决方案

更新:

我按照 Shyju 的建议将 fileExtensions 添加到 system.webServer,但它并没有改变问题。

会不会是捆绑有问题?我按以下方式使用它:

public static void RegisterBundles(BundleCollection bundles)
{
  StyleBundle sharedStyleBundle = new StyleBundle("~/bundles/sharedStyle");
  sharedStyleBundle.Include("~/Content/Template/font-awesome-4.1.0/css/font-awesome.css");
  ...
  bundles.Add(sharedStyleBundle);
  ...
}

IIS 不知道如何处理这些新类型的文件。我们应该明确指出这些是好的文件类型。

将此部分添加到 <system.webServer> 部分下的 web.config。这应该可以解决它。

<staticContent>   
  <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />      
  <mimeMap fileExtension=".otf" mimeType="font/otf" />     
  <mimeMap fileExtension=".woff" mimeType="font/x-woff" />     
  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>

有时,如果已经添加,您需要将其删除并重新添加,以避免可能出现的情况conflicts/errors。

<staticContent>
  <remove fileExtension=".eot" />
  <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
  <remove fileExtension=".otf" />
  <mimeMap fileExtension=".otf" mimeType="font/otf" />
  <remove fileExtension=".woff" />
  <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
  <remove fileExtension=".woff2" />
  <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>

我不得不按如下方式更改捆绑:

public static void RegisterBundles(BundleCollection bundles)
{
  StyleBundle sharedStyleBundle = 
    new StyleBundle("~/Content/Template/font-awesome-4.1.0/css/bundle");
  sharedStyleBundle
    .Include("~/Content/Template/font-awesome-4.1.0/css/font-awesome.css");
  bundles.Add(sharedStyleBundle);
  ...
}

包的密钥与包路径本身具有相同的结构似乎很重要。