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

gov*_*vin 8 asp.net asp.net-mvc minify bundling-and-minification asp.net-optimization

我开始使用.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 ));
Run Code Online (Sandbox Code Playgroud)

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

@Styles.Render("~/bundles/MySiteCss/")
Run Code Online (Sandbox Code Playgroud)

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

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

Ric*_*ard 10

您需要从同一个地方提供捆绑包和CSS,以便轻松工作.例如,将您的捆绑行更改为:

bundles.Add(new StyleBundle("~/Content/MySiteCss/").Include(myCss));
Run Code Online (Sandbox Code Playgroud)

并更新您的参考:

@Styles.Render("~/Content/MySiteCss/")
Run Code Online (Sandbox Code Playgroud)