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 для фоновых изображений?
Я могу скопировать все плагины в одну папку, но с большим количеством плагинов, это не очень хорошая идея.
Ответы
Ответ 1
Можете взглянуть на RequestReduce. Это другой .net-based minifier/bundler, и он будет переписывать все URL-адреса в minified/bundled css, чтобы быть абсолютным. Сюда входят шрифты и фоновые изображения. Он также автоматически расширит импорт в css. Кроме того, где он думает, что это возможно, он будет обрабатывать фоновые изображения.
Ответ 2
У меня была такая же проблема... Я использовал для сборки jQuery UI CSS с моим собственным, но, как вы упомянули, плагины используют его собственный каталог. В моем случае это было:
~/Content/Site.css
~/Content/themes/base/*.css
Этот миниатюрный пакет ищет все изображения в ~/Content/, поэтому пользовательский интерфейс jQuery перестает работать должным образом. Таким образом, единственный способ разрешить это - отделить эти CSS (мой собственный и пользовательский интерфейс jQuery).
BTW: До этого я не понимал, почему CSS в комплекте (в шаблоне MVC4) как ~/content/
вместо ~/bundles/
. Теперь я знаю, что это из-за проблемы с пути к изображениям в каталоге Content
.