ASP.NET Bundles comment faire pour désactiver la minification
J'ai debug="true"
dans mon web.config(s), et je ne veux pas que mon bundles minifiés, mais rien que je ne semble pour le désactiver. J'ai essayé enableoptimisations=false
, voici mon code:
//Javascript
bundles.Add(new ScriptBundle("~/bundles/MainJS")
.Include("~/Scripts/regular/lib/mvc/jquery.validate.unobtrusive.js*")
.Include("~/Scripts/regular/lib/mvc/jquery.validate*")
.Include("~/Scripts/regular/lib/bootstrap.js")
.IncludeDirectory("~/Scripts/regular/modules", "*.js", true)
.IncludeDirectory("~/Scripts/regular/pages", "*.js", true)
.IncludeDirectory("~/Scripts/regular/misc", "*.js", true));
//CSS
bundles.Add(new StyleBundle("~/bundles/MainCSS")
.Include("~/Content/css/regular/lib/bootstrap.css*")
.IncludeDirectory("~/Content/css/regular/modules", "*.css", true)
.IncludeDirectory("~/Content/css/regular/pages", "*.css", true))
- La demande est de savoir comment permettre le regroupement, tout en ayant minification désactivé. À l'aide de web.config debug = true/false ou EnableOptimizations seulement des interrupteurs à la fois ou tous les deux hors tension. Martin Devillers réponse permet le regroupement pour être activée en minification est désactivé
- aussi pour moi .... pour le fichier 'x.de js dans le bundle de s'assurer qu'il n'y a PAS un 'x.min.js' fichier dans le dossier autrement, même si vous avez retiré la minification de transformation .. le regroupement va servir le 'pré' minifiés fichier par exemple, si vous avez "angular.js" puis SUPPRIMER "angular.min.js' 😉
Vous devez vous connecter pour publier un commentaire.
Si vous avez
debug="true"
dans web.config et utilisezScripts/Styles.Render
de référence les ensembles dans vos pages, qui devrait désactiver à la fois le regroupement et la minification.BundleTable.EnableOptimizations = false
toujours désactiver à la fois le regroupement et la minification ainsi (quel que soit le debug à true/false flag).Vous êtes peut-être pas à l'aide de la
Scripts/Styles.Render
aides? Si vous êtes directement le rendu de références pour le bundle viaBundleTable.Bundles.ResolveBundleUrl()
vous obtiendrez toujours la minifiés/livré contenu.debug= true
etBundleTable.EnableOptimizations = false;
est assezEnableOptimizations = false
- d'où vient ce code appartient-il?Directives de compilation conditionnelle sont à votre ami:
Pour désactiver le regroupement et la minification il suffit de mettre ceci à votre .aspx fichier
(cela va désactiver l'optimisation, même si
debug=true
dans web.config)vb.net:
c#.net
Si vous mettez
EnableOptimizations = true
ce seront ensemble et rapetisser même sidebug=true
dans web.configdebug="true"
et le droitScript.Render
mais il n'était toujours pas de travail. Notez également que ce ne sera pas le serveur .min.js fichiers, assurez-vous d'inclure unminified des copies du code de dépendance.False
?Vous pouvez désactiver la minification dans votre bundles simplement en vidant le transforme.
Personnellement, j'ai trouvé ce utile lorsque l'on veut regrouper tous mes scripts dans un fichier unique, mais besoin de lisibilité lors de phases de débogage.
J'ai essayé beaucoup de ces suggestions, mais en notant semblait fonctionner. J'ai gâché quelques heures seulement découvert que c'était mon erreur:
Il ont toujours me minifiés et livré javascript, peu importe ce que j'ai essayé. Au lieu de cela, je devrais avoir utilisé ce:
L'extra '~' il l'a fait. J'ai même enlevé de nouveau dans une seule instance pour voir si c'était vraiment elle. C'était... j'espère que je peux sauver au moins une personne les heures que j'ai perdu sur cette.
Combiner plusieurs réponses, cela fonctionne pour moi dans ASP.NET MVC 4.
Il existe aussi une manière simple de contrôler minification (et d'autres caractéristiques) manuellement. C'est nouveau CssMinify() transformateur en utilisant, comme ceci:
Qui est pratique lorsque vous voulez avoir des faisceaux partie spéciale seulement pour être minimisé. Disons que vous êtes en utilisant un certain niveau (jQuery) les styles, qui, sous vos pieds (en prenant beaucoup de excessif de requêtes du navigateur), mais vous voulez garder unminified votre propre feuille de style. (Le même avec javascript).
J'ai cumulé quelques réponses données par les autres dans cette question afin de trouver une autre solution de rechange.
Objectif: toujours regrouper les fichiers, pour désactiver le JS et CSS minification dans le cas où
<compilation debug="true" ... />
et à toujours appliquer une transformation personnalisée pour le CSS bundle.Ma solution:
1) Dans web.config:
<compilation debug="true" ... />
2) Dans le Mondiale.asax Application_Start() méthode:
Si vous définissez la propriété suivante est fausse, alors il va désactiver le regroupement et la minification.
Dans Mondiale.asax.cs fichier, ajoutez la ligne comme indiqué ci-dessous
Juste pour compléter les réponses déjà données, si vous aussi vous voulez PAS minify/dissimuler/concaténer des fichiers, tout en permettant le plein le regroupement et la minification pour d'autres fichiers la meilleure option est d'aller avec un moteur de rendu qui va lire le contenu d'une série particulière(s) et de rendre les fichiers dans la page plutôt que de rendre le faisceau du chemin d'accès virtuel. Personnellement, j'ai tenu ce parce que IE 9 $*%@ing le lit quand mon CSS fichiers ont été regroupés même avec minification éteint.
Merci beaucoup pour cet article, ce qui m'a donné le point de départ pour le code que j'ai utilisé pour créer un CSS moteur de Rendu qui rendrait les fichiers pour le CSS, mais encore de permettre au système pour rendre mes fichiers javascript groupés/compacte/obscurci.
Créé la statique de la classe helper:
Puis dans le rasoir fichier de mise en page:
au lieu de la norme:
Je suis sûr que la création d'une option de moteur de rendu pour les fichiers javascript aurait besoin de peu pour la mise à jour de cette aide ainsi.
CssTemplate
à quelque chose comme"<link href=\"{0}?f={1}\" rel=\"stylesheet\" type=\"text/css\" />"
et modifier lesb.AppendFormat
ligne pour quelque chose commesb.AppendFormat(CssTemplate + Environment.NewLine, urlHelper.Content(file.VirtualFile.VirtualPath), System.IO.File.GetLastWriteTimeUtc(HttpContext.Current.Server.MapPath(file.IncludedVirtualPath)).Ticks);
Voici comment désactiver la minification sur un p-module de base:
Note: Les chemins d'accès utilisés pour vos faisceaux ne doit pas coïncider avec n'importe quel chemin d'accès réel dans votre publication s'appuie sinon rien ne fonctionnera. Aussi assurez-vous d'éviter de l'utiliser .js, .css et/ou '.' et '_' n'importe où dans le nom du bundle. Garder le nom aussi simple et directe que possible, comme dans l'exemple ci-dessus.
Les classes d'aide sont présentés ci-dessous. Remarquez que dans le but de rendre ces classes d'avenir nous enlever chirurgicalement le js/css minifying des instances au lieu de l'aide .clear() et nous avons également insérer un mime-type setter transformation sans laquelle la production s'appuie sont liés à un problème surtout quand il s'agit de bien remise css-faisceaux (firefox et chrome rejeter css ballots, type mime mis à "text/html", qui est la valeur par défaut):
De faire tout cela fonctionne, vous devez l'installer (via nuget):
WebGrease 1.6.0+
Microsoft.AspNet.Web.Optimisation 1.1.3+
Et votre site web.config devrait être enrichi comme suit:
Noter que vous pourriez avoir à prendre des mesures supplémentaires pour faire de votre css-faisceaux de travail en termes de polices etc. Mais c'est une autre histoire.
De recherche pour
EnableOptimizations
mot-clé dans votre projetDonc, si vous trouvez
tourner
false
.Si vous utilisez LESS/SASS en CSS transformation il y a une option
useNativeMinification
qui peut être défini à false pour désactiver la minification (sur le web.config). Pour ma part je viens de changer ici quand j'en ai besoin, mais vous pouvez utiliser le web.config transformations de toujours activer sur la libération de construire ou peut-être trouver un moyen de le modifier dans le code.Astuce: Le point entier de ce qui est pour afficher votre CSS, que vous pouvez faire dans le navigateur inspecter les outils ou par le simple fait d'ouvrir le fichier. Lorsque le regroupement est activé que le nom de fichier des changements dans tous les compiler, donc j'ai mis la suivante en haut de ma page afin que je puisse voir mon CSS compilé eaily dans une nouvelle fenêtre de navigateur chaque fois qu'il change.
ce sera une URL dynamique quelque chose comme
https://example.com/Content/css/bundlename?v=UGd0FjvFJz3ETxlNN9NVqNOeYMRrOkQAkYtB04KisCQ1
Mise à jour: j'ai créé un site web.config transformation de l'activer pour moi lors du déploiement /version validée
Cela peut être utile à quelqu'un dans le futur que sur le nouveau cadre, lorsque le programme d'installation grâce à VS, obtient un défaut
web.config
,web.Debug.config
etweb.Release.config
. Dans leweb.release.config
vous trouvez cette ligne:c'était semblant de remplacer tout inline modifications que j'ai apportées. Je commente cette ligne et nous étions de la sauce (en termes de voir des non-minifiés code dans une "libération" de construire)