我目前正在研究使用该项目的ASP.NET Web优化库(1.1.0-β1)结合捆绑变压器延伸(V 1.7.3-β1核心,1.7.0-β1少)它是用于LESS转化成CSS。 基于Web的搜索路径CSS内(少)似乎是一个常见的问题,在大多数情况下,建议手动修改CSS并用它来完成。 但是,由于我们的开发和生产环境,并且不拥有受影响的CSS这样的解决方案之间的差异是不可行的。
两种解决方案似乎存在。 首先是覆盖由捆绑在包含内容的实际目录所定义的虚拟目录。 对我来说,这似乎是一个糟糕的选择。
其次,我所选择的路线,是使用IItemTransform
如CssRewriteUrlTransform
(中提到的这篇文章 ,即使这个解决方案有它的局限性 。因此,我试图写我自己的ItemTransformer
但似乎它的结果是以下面的方式使用时,执行将被忽略:
public static void RegisterBundles(BundleCollection bundles)
{
/* among other work pass in IItemTransformer to fix paths */
var styleBundle = new StyleBundle("~/bundles/css/styles")
.Include(...)
.Include("~/Content/less/font-awesome.less", new RewriteUrlTransform())
.Include(...);
styleBundle.Transforms.Add(new CssTransformer());
styleBundle.Orderer = new NullOrderer();
bundles.Add(styleBundle);
}
IItemTransform的执行情况:
public class RewriteUrlTransform : IItemTransform
{
public string Process(string includedVirtualPath, string input)
{
return (input manipulated with proper path replacing bad path)
}
}
除非我完全误解了如何IItemTransform
被使用,这是非常有可能是由于缺少文件,我认为过程方法的返回是新的后处理CSS。 然而,回报似乎被忽略。 原始输入始终是在使用,甚至当我返回String.Empty()
我在这里做得不对或者是它确实是一个错误吗?