ASP.NET MVC 4 Minification&背景图片

时间:2012-03-20 01:00:51

标签: css asp.net-mvc-4

我目前正在使用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路径?

我可以将所有插件复制到一个文件夹中,但是有很多插件,这不是一个好主意。

2 个答案:

答案 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目录中的图像路径存在问题。