MVC ScriptBundle custom sorting ., Mvcscriptbundle
Today, we found the ScriptBundle @ Scripts of MVC. after the Render () is displayed on the page according to the order I do not know, the consequence is jquery. min. js is listed at the backend (the default jquery in my pile below. min. js in the third place) causes javascript to report errors, so in many cases, it cannot be automatically sorted by the first letter.
The solution is as follows:
First, create a new class:
internal class AsIsBundleOrderer : IBundleOrderer{ public virtual IEnumerable<BundleFile> OrderFiles(BundleContext context, IEnumerable<BundleFile> files) { return files; }}
Then bind it as follows:
ScriptBundle mandatoryJs = new ScriptBundle("~/Metronic/mandatoryJs");mandatoryJs.Orderer = new AsIsBundleOrderer();mandatoryJs.Include( "~/plugins/Metronic/global/plugins/jquery.min.js", "~/plugins/Metronic/global/plugins/jquery-migrate.min.js", "~/plugins/Metronic/global/plugins/jquery-ui/jquery-ui.min.js", "~/plugins/Metronic/global/plugins/bootstrap/js/bootstrap.min.js", "~/plugins/Metronic/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js", "~/plugins/Metronic/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js", "~/plugins/Metronic/global/plugins/jquery.blockui.min.js", "~/plugins/Metronic/global/plugins/jquery.cokie.min.js", "~/plugins/Metronic/global/plugins/uniform/jquery.uniform.min.js", "~/plugins/Metronic/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js" );bundles.Add(mandatoryJs);
That's all.
Finally, you can simplify the process:
bundles.Add(new ScriptBundle("~/Metronic/mandatoryJs") { Orderer = new AsIsBundleOrderer() }.Include( "~/plugins/Metronic/global/plugins/jquery.min.js", "~/plugins/Metronic/global/plugins/jquery-migrate.min.js", "~/plugins/Metronic/global/plugins/jquery-ui/jquery-ui.min.js", "~/plugins/Metronic/global/plugins/bootstrap/js/bootstrap.min.js", "~/plugins/Metronic/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js", "~/plugins/Metronic/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js", "~/plugins/Metronic/global/plugins/jquery.blockui.min.js", "~/plugins/Metronic/global/plugins/jquery.cokie.min.js", "~/plugins/Metronic/global/plugins/uniform/jquery.uniform.min.js", "~/plugins/Metronic/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js" ));
It looks like a start.