MVC4捆绑误导背景图片网址

时间:2013-08-30 10:41:33

标签: c# asp.net css asp.net-mvc-4 bundling-and-minification

我有这个捆绑配置:

bundles.Add(new StyleBundle("~/styles/style1").Include("~/Content/library/styles/style1.css")

然后我添加了这段代码来渲染捆绑的CSS:

@Styles.Render("~/styles/style1")

我的CSS有这样的内容:

.style1 {
  background-image: url("../img/image.png");
}

由于捆绑,背景图像的路径被误导为〜/ Content / library / img / image.png而不是〜/ img / image.png。我不想编辑CSS文件路径,因为许多其他页面正在使用它。你知道它的任何解决方案,还是我在捆绑中错过了配置?

1 个答案:

答案 0 :(得分:11)

您需要应用CssRewriteUrlTransform来解决此问题:

bundles.Add(new StyleBundle("~/styles/style1")
                .Include("~/Content/styles/style1", new CssRewriteUrlTransform())

或者,您也可以在样式表中使用绝对路径。

PS:如评论中所述,您必须通过Codeplex或NuGet将 Web Optimization Package 添加到您的项目中才能使用CssRewriteUrlTransform类