font-awesome不能在MVC5中使用bundleconfig

如果我直接在font-awesome.css页面中引用font-awesome.css 。 它会工作

 <link href="~/Content/font-awesome-4.0.3/css/font-awesome.css" rel="stylesheet" /> 

但是我在BundleConfig.cs 。 图标不显示。

  bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/font-awesome-4.0.3/css/font-awesome.css", "~/Content/bootstrap.css", "~/Content/body.css", "~/Content/site.css", "~/Content/form.css" )); 

还观察到浏览器控制台对字体目录有错误。 Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:51130/fonts/fontawesome-webfont.woff?v=4.0.3

可能是什么问题呢?

如本文所述 ,绑定时请尝试使用CssRewriteUrlTransform

 bundles.Add(new StyleBundle("~/Content/css").Include( "~/Content/bootstrap.css", "~/Content/body.css", "~/Content/site.css", "~/Content/form.css" ).Include("~/Content/font-awesome-4.0.3/css/font-awesome.css", new CssRewriteUrlTransform()); 

这将更改资源从CSS文件的任何url到绝对的URL,所以捆绑不会弄乱相对path。

MSDN链接: CssRewriteUrlTransform

我的解决scheme很简单:运行PM> Install-Package FontAwesome,并引用正确的path:

 .Include("~/Content/font-awesome.min.css") 

我有相同的错误消息,并在IIS中设置networking字体的MIMEtypes后修复。

我也有这个相同的错误信息。 我必须做这个线程中列出的答案的组合:

  1. 按照@Simon Cbuild议添加这行代码:

    .include(“〜/ Content / font-awesome-4.0.3 / css / font-awesome.css”,新的CssRewriteUrlTransform());

这工作,以解决相关的url,但是,我不得不从我的bower目录中删除font-awesome.min.css文件,每当我发布,否则捆绑器会感到困惑,不包括和缩小font-awesome.css文件。 所以…

  1. 我不得不做@miha在评论中提出的build议,并用CssRewriteUrlTransform()修复font-awesome.min.css文件中的相关url。 所以我决定重写.min文件中的url,只是包括那个而不是未分类的版本,它的工作原理:

    .include(“〜/ Content / font-awesome-4.0.3 / css / font-awesome.min.css”,新的CssRewriteUrlTransform());

如果我理解正确,捆绑器将不会尝试再次缩小.min文件,因为它已经被缩小。 唯一的“缺点”是它不会将font-awesome.min.css内容连接到捆绑器创build的单个css文件中。 它将被分开包含。