【问题标题】:CssRewriteUrlTransform does not takeCssRewriteUrlTransform 不占用
【发布时间】:2015-08-06 17:30:30
【问题描述】:
bundles.Add(new StyleBundle("~/a/b/c")
    .Include("~/Content/font-awesome.css", new CssRewriteUrlTransform()));

我有这个捆绑包。 font-awesome css 有一个定义为 url('../fonts/fontawesome-webfont.eot?v=4.0.3') 的 url,当 css 位于 "~/Content/font-awesome.css" 下但现在它位于 "~/a/b" 下时有效

但是CssRewriteUrlTransform 不会启动并重写url('../../fonts/fontawesome-webfont.eot?v=4.0.3') 的路径

更新:如果我删除 .min 文件,CssRewriteUrlTransform开始工作,网络优化中的错误?

https://aspnetoptimization.codeplex.com/workitem/166

【问题讨论】:

  • 删除 min css 文件对我有用,感谢“更新”。我认为如果发现一个绕过 CssRewriteUrlTransform 的静态最小值,捆绑会尝试跳过缩小过程,这看起来确实是一个错误,但很容易解决。
  • MS 似乎不明智地尝试“优化”捆绑,这会导致难以调试的问题。

标签: c# asp.net-mvc web-optimization


【解决方案1】:

和我有同样的问题。

您需要设置相对于您文件所在文件夹的 Bundle url。

bundles.Add(new StyleBundle("~/Content/fontawesomebundle")
    .Include("~/Content/font-awesome.css", new CssRewriteUrlTransform()));

更新: CssRewriteUrlTransform 似乎不适用于 min 文件。 在包含中使用 .min 文件或删除 min 文件。

【讨论】:

  • 但是你也可以删除 CssRewriteUrlTransform 因为它什么都不做
  • 您是在托管站点(带有虚拟目录)还是在开发中进行测试?
  • 默认情况下,捆绑包将使用 .min 文件(如果存在)。可能是这样的
  • 但是转换也应该用于最小文件
  • 结果是使用了 min 文件,即使它不包括在内,并且在我使用 min 时没有进行任何转换。我必须删除一个不应该使用的文件才能使事情正常进行。微软的想法不错。
猜你喜欢
  • 2013-11-06
  • 2016-07-11
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-20
  • 1970-01-01
相关资源
最近更新 更多