我目前正在使用ASP.NET MVC 4 CSS / JavaScript Optimizer。它适用于我自己的CSS / JavaScript,但我也想将它与插件一起使用。每个插件都有自己的文件夹:
~/Content/css // my own css, ok
~/Content/plugins/rateit
~/Content/plugins/chosen
~/Content/plugins/...
我可以将这些文件添加到优化器中:
var bundle = new Bundle("~/Content/opt", new CssMinify());
...
bundle.AddFile("~/Content/plugins/chosen/chosen.css", "*.css");
BundleTable.Bundles.Add(bundle);
但在这种情况下,优化后,css位于另一个文件夹中,浏览器无法再找到背景图像。是否有任何解决方案可以自动修改背景图像的css路径?
我可以将所有插件复制到一个文件夹中,但是有很多插件,这不是一个好主意。
答案 0 :(得分:4)
可能会看一下RequestReduce。它是另一个基于.net的minifier / bundler,它将重写minified / bundled css中的所有url是绝对的。这包括字体和背景图像。它还会自动扩展css中的任何导入。此外,在它认为可以的地方,它将精灵背景图像。
答案 1 :(得分:4)
我遇到了同样的问题...我曾经将jQuery UI CSS与我自己捆绑在一起,但正如你所提到的,插件使用它自己的目录。就我而言,它是:
~/Content/Site.css
~/Content/themes/base/*.css
这个缩小的包在〜/ Content /中查找所有图像,因此jQuery UI停止正常工作。所以解决这个问题的唯一方法是将这些CSS(我自己的和一个jQuery UI)分开。
BTW:在此之前,我不明白为什么CSS被捆绑(在MVC4模板中)为~/content/
而不是~/bundles/
。现在我知道这是因为Content
目录中的图像路径存在问题。