问题解释
我有这个问题主要是因为CSS相对图像引用。如果你使用IItemTransform与Javascript文件,同样适用。
这是我正在使用的:
>我使用Visual Studio与Web Essentials addin以支持LESS文件
>我写了LESS文件,并让Web Essentials addin自动缩小文件保存
我也在我的项目中使用捆绑和缩小
>当创建CSS包我使用CssRewriteUrlTransform使CSS网址绝对(即背景图片),以便图像仍然工作后捆绑几个CSS文件在一起
这里没有什么不寻常,但它不工作。
什么似乎是问题?
捆绑和缩小的工作方式是尽量避免过度处理。这意味着,当缩小的文件存在于与原始文件相同的文件夹中时,它将不会运行自己的缩小,而是提供现有文件。
这将是完全正确的,只要它至少运行转换那些预先存在的缩小文件。但它不。所以我最终得到一个捆绑包中的相对URL,几乎所有这些资源。
>始终在LESS文件中提供绝对路径
>在Web Essentials设置中保存时禁用文件缩小
>定义我的bundle时,参考minified文件,因为他们没有一个缩小的版本(* .min.css doens’t有一个* .min.min.css)所以minifier实际上拾起文件和minifies,同时运行转换超过它。
从我的开发过程和使用的工具(和配置它们的方式)的观点,这看起来像一个错误。如果这些文件是相同缩小过程的结果,这不会是一个bug,因为当执行缩小时将执行转换。这是真的,这样的功能不存在,可能永远不会像应用程序需要写权限,使其工作。结果:这是一个错误。现有的缩小文件应在缓存之前通过转换进行处理。
题
有可能以某种方式说服捆绑和缩小:
>不使用现有的缩小文件版本
>在现有缩小版本上运行转换
解决方法
它有一个学习曲线,但是,信息池是巨大的。你所遇到的问题与web基本不会是咕噜的问题。
我在VS中使用它,现在,缩小,捆绑和透传css和javascript以及重组文件到部署目录。一旦你设置了一个目录结构,一个grunt文件可以很容易地重用。
使用VS中的加载项(链接,下面),您可以右键单击grunt文件,并从弹出菜单中选择要运行的grunt任务。
https://visualstudiogallery.msdn.microsoft.com/dcbc5325-79ef-4b72-960e-0a51ee33a0ff
Grunt“任务”,因为它们被称为可以通过下载各种插件,即https://www.npmjs.com/package/grunt-contrib-less创建。