Le regroupement de scripts ASP.NET MVC 4 provoque des erreurs lors du déploiement
Mon site fonctionne bien sur localhost quand @Scripts.Render()
est pas le regroupement des scripts mais quand je suis déployer sur mon serveur le logiciel Javascript doit contenir une erreur Javascript sur ma page d'arrêts de travail.
Voici mon bundle code:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery-migrate-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery-ui.unobtrusive-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.resizable.css",
"~/Content/themes/base/jquery.ui.selectable.css",
"~/Content/themes/base/jquery.ui.accordion.css",
"~/Content/themes/base/jquery.ui.autocomplete.css",
"~/Content/themes/base/jquery.ui.button.css",
"~/Content/themes/base/jquery.ui.dialog.css",
"~/Content/themes/base/jquery.ui.slider.css",
"~/Content/themes/base/jquery.ui.tabs.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.progressbar.css",
"~/Content/themes/base/jquery.ui.theme.css"));
}
Voici mon code d'affichage:
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/themes/base/css")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/modernizr")
Quelqu'un peut m'expliquer ce qui se passe à mon Javascript lors du déploiement?
Grâce,
Alex.
source d'informationauteur Alex Hope O'Connor
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également modifier votre "nouvelle ScriptBundle" juste "d'un nouveau Bundle":
Cela permettra de regrouper vos actifs sans minification. J'ai couru dans certains cas où les minifying n'aurait tout simplement pas fonctionner avec certaines bibliothèques, afin de vous permettre de les inclure dans votre bundle.
Généralement la seule différence entre le débogage et déployé des faisceaux est que des optimisations sont désactivées lorsque vous déboguez.
Quand optimisations sont allumés, il est possible pour la minification pour mettre en évidence une erreur de syntaxe qui pourraient être pardonnés si il y avait un saut de ligne. Par exemple:
De l'onu-compacte, ce serait probablement travailler - mais minifiés vous vous retrouvez avec...
Qui ne fonctionne pas - vous devez le manque
;
caractères.Si vous le script de débogage, vous devriez être en mesure de voir où est l'erreur.
La minification "œuvres" même si des erreurs s'affiche
La vraie solution pour cela est:
Et la minification fonctionne. En fait, la minification processus fonctionne toujours!
Si "ça marche", qu'est-ce qui se passe vraiment: pourquoi faut-il une erreur?
ASP.Net semble utiliser .min fichiers en priorité lorsque le regroupement est activé optimisations.
Donc, il va également intégrer le code .min fichiers et ajouter chaque fichier javascript l'un après l'autre, sans ajouter des sauts de ligne.
Il est le navigateur qui ne peut pas comprendre pourquoi il y a un commentaire /*
Après le min de cartographie de configuration:
//# sourceMappingURL=jquery.l'histoire.min.js.carte
Parce que les fichiers empaquetés ressemblera:
Il y a deux solutions pour éviter cette erreur:
L'objectif serait de force ASP.Net pour régénérer min fichiers par lui-même (et ASP.Net ne fera pas de //sourceMappingUrl à l'intérieur de son fichier généré de sorte qu'il permettra de résoudre ce problème).
De sorte que le vrai problème est la mise en œuvre actuelle de cette fonction à l'intérieur de l'navigateurs, car il ne semble pas à analyser les commentaires pour le commentaire de sourcemapping.
Peut-être il ya une autre façon d'indiquer au navigateur que le sourceMappingUrl a pris fin.
Cochez cette solution
IIS Config>l'Authentification>RightClickOn Anonyme Auth>Cliquez sur Modifier> Vérifier l'identité du pool d'Applications
Prises de ici.