1.添加IBundleTransform实现
? ? public class BundleTransform : IBundleTransform ? ? { ? ? ? ? public void Process(BundleContext context, BundleResponse response) ? ? ? ? { ? ? ? ? ? ? foreach (var file in response.Files) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? using (var fileStream = File.OpenRead(HostingEnvironment.MapPath(file.IncludedVirtualPath))) ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? /// 此处选择使用MD5计算方式 ? ? ? ? ? ? ? ? ? ? var algorithm = new MD5CryptoServiceProvider(); ? ? ? ? ? ? ? ? ? ? var hashBytes = algorithm.ComputeHash(fileStream); ? ? ? ? ? ? ? ? ? ? var version = string.Join(null, hashBytes.Select(value => value.ToString("x2"))); ? ? ? ? ? ? ? ? ? ? //var version = HttpServerUtility.UrlTokenEncode(hashBytes); ? ? ? ? ? ? ? ? ? ? file.IncludedVirtualPath = string.Concat(file.IncludedVirtualPath, $"?v={version}"); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? } ? ? }
2.BundleConfig调用?
? ? public class BundleConfig ? ? { ? ? ? ? public static void RegisterBundles(BundleCollection bundles) ? ? ? ? { ? ? ? ? ? ? bundles.Add(new ScriptBundle("~/bundles/jquery").Include( ? ? ? ? ? ? ? ? ? ? ? ? "~/Scripts/jquery-{version}.js"));
? ? ? ? ? ? bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( ? ? ? ? ? ? ? ? ? ? ? ? "~/Scripts/jquery.validate*"));
? ? ? ? ? ? bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( ? ? ? ? ? ? ? ? ? ? ? ? "~/Scripts/modernizr-*"));
? ? ? ? ? ? bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include( ? ? ? ? ? ? ? ? ? ? ? "~/Scripts/bootstrap.js"));
? ? ? ? ? ? bundles.Add(new StyleBundle("~/Content/css").Include( ? ? ? ? ? ? ? ? ? ? ? "~/Content/bootstrap.css", ? ? ? ? ? ? ? ? ? ? ? "~/Content/site.css"));
? ? ? ? ? ? Bundle scriptBundle = new ScriptBundle("~/Scripts/Public/Bundle") ? ? ? ? ? ? ? ? .IncludeDirectory("~/Scripts", "*.js", true) ? ? ? ? ? ? ? ? .Include("~/Scripts/*.js") ? ? ? ? ? ? ? ? .Include("~/Scripts/bootstrap.js"); ? ? ? ? ? ? Bundle styleBundle = new StyleBundle("~/Content/Public/Bundle") ? ? ? ? ? ? ? ? .IncludeDirectory("~/Content", "*.css", true) ? ? ? ? ? ? ? ? .Include("~/Content/*.css") ? ? ? ? ? ? ? ? .Include("~/Content/Site.css") ? ? ? ? ? ? ? ? .Include("~/Content/bootstrap.css"); ? ? ? ? ? ? //为Bundel包引用文件添加版本号(解决缓存问题) ? ? ? ? ? ? scriptBundle.Transforms.Add(new BundleTransform()); ? ? ? ? ? ? styleBundle.Transforms.Add(new BundleTransform()); ? ? ? ? ? ? bundles.Add(scriptBundle); ? ? ? ? ? ? bundles.Add(styleBundle); ? ? ? ? } ? ? }
3.cshtml页面引用
? ? @Styles.Render("~/Content/Public/Bundle") ? ? @Scripts.Render("~/Scripts/Public/Bundle")
最终效果
?
|