ASP.NET MVC 4 Minification & Background Images
j'utilise actuellement ASP.NET MVC 4 CSS/Javascript Optimizer. Il fonctionne bien avec mon propre CSS / JavaScript, mais je veux aussi l'utiliser avec des plugins. Chaque plugin a son propre dossier:
~/Content/css // my own css, ok
~/Content/plugins/rateit
~/Content/plugins/chosen
~/Content/plugins/...
je peux ajouter ces fichiers à optimizer:
var bundle = new Bundle("~/Content/opt", new CssMinify());
...
bundle.AddFile("~/Content/plugins/chosen/chosen.css", "*.css");
BundleTable.Bundles.Add(bundle);
mais dans ce cas, après optimisation, css est dans un autre dossier et le navigateur ne peut plus trouver les images de fond. Est-il une solution pour modifier automatiquement css chemin de fond les images?
je peux copier tous les plugins dans un dossier, mais avec beaucoup de plugins, c'est pas une bonne idée.
2 réponses
pourrait avoir un regard sur RequestReduce . C'est un autre minificateur/bundler basé sur.net et il réécrira toutes les urls dans les css minifies/bundled pour être absolu. Cela inclut les polices de caractères et les images d'arrière-plan. Il étendra automatiquement toutes les importations dans le css. En outre, là où il pense qu'il peut, il sprite les images de fond.
j'ai eu le même problème... J'ai utilisé pour regrouper jQuery UI CSS avec mon propre, mais comme vous l'avez mentionné, plug-ins utilise son propre répertoire. Dans mon cas, c'était:
~/Content/Site.css
~/Content/themes/base/*.css
ce paquet miniifié cherche toutes les images dans ~/Content/ de sorte que l'interface utilisateur jQuery cesse de fonctionner correctement. Donc la seule façon de résoudre ceci est de séparer ces CSS (le mien et celui de jQuery UI).
BTW: avant cela, je ne comprenais pas pourquoi les CSS sont groupés (dans le modèle MVC4) comme ~/content/
au lieu de ~/bundles/
. Maintenant je sais que c'est à cause d'un problème avec le chemin vers les images dans le répertoire Content
.