MVC4捆绑误导背景图像网址

Posted

技术标签:

【中文标题】MVC4捆绑误导背景图像网址【英文标题】:MVC4 Bundling misdirect background-image url 【发布时间】:2013-09-03 01:36:47 【问题描述】:

我有这个捆绑配置:

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 文件路径,因为许多其他页面正在使用它。你知道它的任何解决方案还是我在捆绑时缺少配置?

【问题讨论】:

~/Content/styles/style1 style1 是你的css文件吗?那么你应该这样使用它~/Content/styles/style1.css @xurca 现在编辑了我的问题,但我希望你能得到我的问题,主要概念是捆绑会误导 url 路径 我可以建议你检查这个链接:***.com/questions/11355935/… 【参考方案1】:

您需要申请 CssRewriteUrlTransform 来解决此问题:

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

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

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

【讨论】:

是VS2012内置的CssRewriteUrlTransform类吗? 尝试添加对System.Web.Optimization的引用。如果找不到,请看这里:aspnetoptimization.codeplex.com 或者,或者,使用 NuGet:Install-Package Microsoft.AspNet.Web.Optimization 当心 CssRewriteUrlTransform 的问题,例如数据 url 和虚拟目录,并考虑使用 CssRewriteUrlTransformFixed.cs。

以上是关于MVC4捆绑误导背景图像网址的主要内容,如果未能解决你的问题,请参考以下文章

MVC4 StyleBundle 无法解析图像

背景图像未与 s-s-rS 中的气泡图对齐

背景图全屏显示

常见的几种抠图方式?

UITabbar ios的背景图

从SASS编译时CSS背景网址SVG填充颜色不起作用(不是base64)[重复]