.NET 4.5中的样式包和CSS中的图标

时间:2012-08-07 20:37:08

标签: asp.net asp.net-mvc minify asp.net-optimization bundling-and-minification

我开始使用.NET 4.5内置的缩小和捆绑来缩小和缩小捆绑我的CSS和JavaScript。 JavaScript缩小效果很好,然而,我在CSS缩小时遇到了麻烦。我使用下面的代码创建一个样式包 -

var myCss = new string[]
                                        {
                                            "~/Content/jquery.css",
                                            "~/Content/app.css",
                                        };
bundles.Add(new StyleBundle("~/bundles/MySiteCss/").Include(myCss ));

然后我在.cshtml(razor文件)中引用它们,如下所示 -

@Styles.Render("~/bundles/MySiteCss/")

它缩小了CSS文件。但是,如果CSS文件包含具有背景图像引用的样式,例如background-image:url('img / icon.png'),它会尝试从新位置加载此图标文件(从包名称派生) = /bundles/MySiteCss/img/icon.png

由于该位置不存在图标,因此不会加载并显示在页面上。

2 个答案:

答案 0 :(得分:10)

您需要在同一个地方提供捆绑包和CSS,以便轻松使用。例如,将捆绑行更改为:

bundles.Add(new StyleBundle("~/Content/MySiteCss/").Include(myCss));

并更新您的参考资料:

@Styles.Render("~/Content/MySiteCss/")

答案 1 :(得分:0)

已在Microsoft ASP.NET Web优化框架的1.1.0-alpha1版本中修复此问题 如果包含Prerelease,您可以通过NuGet(https://nuget.org/packages/Microsoft.AspNet.Web.Optimization)获取更新。