ASP.NET MVC 4 app avec le regroupement et la minification, pourquoi est-minification activé en mode debug?
Je viens de migré un ASP.NET MVC 3 projet MVC 4 /.NET 4.0, et a installé le package NuGet Microsoft.AspNet.Web.Optimization
afin de soutenir le regroupement et la minification CSS et JavaScript. J'ai assez bien obtenu le groupage/minification du travail, le problème c'est que c'est toujours activé. Même si l'application est en mode de débogage, tel que configuré dans le Web.config, tous les JavaScript sont minifiés. Comme vous pouvez le voir ci-dessous l'extrait de code XML suivant, le mode debug est activé dans le Web.config:
<system.web>
<compilation debug="true" targetFramework="4.0">
...
</compilation>
...
</system.web>
Un extrait de mon bundle de configuration:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
...
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.*",
"~/Scripts/jquery.form.js",
"~/Scripts/jquery.format.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/Site.css"));
...
}
}
CSS/JavaScript comprend sont rendus dans le code HTML comme par exemple:
<link href="/content/css" rel="stylesheet" type="text/css">
<script src="/bundles/jquery" type="text/javascript"></script>
Quelqu'un a une idée de pourquoi minification sera activée dans mon cas? Je suis à une perte quant à ce que je suis absent ici. Pour dépanner, j'ai créé un test ASP.NET MVC 4 applications Internet et n'a pas pu vérifier que CSS/JavaScript n'a pas obtenir minimisé en mode de débogage pour ce projet.
EDIT:
Dans mon _Layout.cshtml fichier que j'ai rendu les styles/scripts comme ceci:
@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")
Grâce à Hao, je me rends compte que j'ai oublié de le préfixe le bundle noms avec "~/".
- Cette question peut être utile. Comment faire pour désactiver Javascript/CSS minification dans ASP.NET MVC 4
- Les réponses à cette question semble être pour inconditionnellement la désactivation de la minification? Je veux juste la norme conditionnelle minification de travail.
Vous devez vous connecter pour publier un commentaire.
Le drapeau rouge est, avec le lien/balises de script rendus dans votre code HTML:
Ces doit contenir une version hashcode si vous utilisez le Script/Style.Le rendu, c'est à dire
Pour obtenir le debug/release comportement que l'MVC4 sont des modèles à l'aide, vous devez utiliser le Script/Style.Rendre l'utilisation de méthodes. Lors de l'appel de ces méthodes, vous devez passer virtuelle bundle chemins, dans votre exemple:
En mode de débogage, vous ne devriez pas obtenir le lien/balises de script pointant vers le bundle (qui sera toujours minimisé/groupé). Au lieu de cela, vous devriez obtenir le script/lien balises pour les ressources de l'individu en mode de débogage.
J'ai juste eu cette arriver sur un tout nouveau ASP.NET projet MVC. J'ai eu le
<compilation debug="true" targetFramework="4.5.1" />
la valeur true dans le web.config et a toujours minimisé sortie.Le correctif
BundleConfig.cs (en App_Start) a une ligne au bas
BundleTable.EnableOptimizations = true;
qui était primordial de mon site web.paramètre de configuration....Supprimer la ligne et/ou de le mettre à false et j'ai eu mes scripts unminified/dégroupés que désiré en environnement de débogage.
Je vous recommandons de retirer la ligne puisque cela va remplacer le web.config. La définition de cette dans le web.configuration a l'avantage de l'utilisation du web.config transforme de sorte que vous pouvez créer différents paramètres de déploiement sur les différents environnements.
Pour plus d'informations sur ce point, voir http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification et de lire les Contrôler le Regroupement et la Minification section (environ à mi-chemin en bas de l'article).