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);
...
}
包的密钥与包路径本身具有相同的结构似乎很重要。
当在 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);
...
}
包的密钥与包路径本身具有相同的结构似乎很重要。