übereinstimmen Bevor Sie die Frage beantworten können, was den Fehler verursacht hat, müssen Sie zuerst herausfinden, wo der Fehler auftrat. Der einzige Unterschied in der Syntax Ihres Codes beim Bundle besteht darin, dass er minimiert ist. Eine sehr einfache Möglichkeit, dies zu tun, ist die Verwendung eines Bundle
anstelle eines ScriptBundle
:
var thirdParty = new Bundle("~/bundles/thirdParty").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery-ui-{version}.js",
"~/Scripts/jquery.mockjson.js",
"~/Scripts/jQuery.XDomainRequest.js",
"~/Scripts/knockout-{version}.js"
);
thirdParty.Transforms.Clear();
bundles.Add(thirdParty);
Nun, wenn Sie mehrere JavaScript-Bundles haben, diese eins nach dem anderen für sie tun, bis Sie den Täter Bündel haben.
Der einzige Weg, die ich gefunden habe, um diese Probleme zu debuggen ist Ihr Bündel zu nehmen und teilen es in der Hälfte, um sie aufzubrechen weiter:
var thirdParty1 = new Bundle("~/bundles/thirdParty1").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery-ui-{version}.js"
);
bundles.Add(thirdParty1);
var thirdParty2 = new ScriptBundle("~/bundles/thirdParty2").Include(
"~/Scripts/jquery.mockjson.js",
"~/Scripts/jQuery.XDomainRequest.js",
"~/Scripts/knockout-{version}.js"
);
bundles.Add(thirdParty2);
Beachten Sie, dass wir nur für einen behinderten minification haben von die zwei Bündel - thirdParty1
. Seien Sie sicher und aktualisieren Sie Ihre @Scripts.Render
, um auf Ihre neuen Bundles zu verweisen. Wenn Sie das Build erstellen und neu laden, erhalten Sie entweder weiterhin den Fehler, oder Sie werden es nicht tun und dann wissen, welche Hälfte den problematischen Code enthält. Aber seien Sie sicher und testen Sie beide Wege, thirdParty1
und thirdParty2
in meinem Beispiel zu reduzieren und umgekehrt, um sicher zu sein, etwas anderes geht nicht weiter. Sie sollten auch DevTools oder einen anderen Browser-Debugger, den Sie geöffnet haben, behalten und sich die Quelle Ihrer Pakete ansehen, um sicherzustellen, dass sie wie erwartet funktionieren.
Weiter durch die Skripte aus dem minimierte Bündel (thirdParty1
in meinem Fall) aus dem unminified Bündel (thirdParty2
) entweder einen nach dem anderen oder in Stücken zu bewegen, wenn Sie eine Menge von Skripten haben. Denken Sie daran, dazwischen zu erstellen, und achten Sie darauf, die Einschlussreihenfolge Ihrer Skripts nicht zu ändern.
Das sollte Sie wenigstens zu der Datei führen, die das Problem hat - und hoffentlich nach "<" suchen, erhalten Sie Ihre Antwort.
Hoffe, dass hilft.
Ich fand es zu debuggen Probleme im Release-Modus schwierig, wenn MVC Bündelung, aber ein Fehler, den ich fand mich machte bereits minimierte JS/CSS die Bündelung Motor vorbei - es ist nur un-minimierte Skripte übergeben, die Bündelung Motor wird es selbst verkleinern – CodingIntrigue
Danke. Haben Sie keine verkleinerten JS/CSS ... –
Verwenden Sie die entsprechenden '@ Scripts.Render()' und '@ Styles.Render()' Anrufe? Hast du die Browser-Konsole überprüft, um zu sehen, was sie zurückgibt? – CodingIntrigue