1 //自己拓展HtmlHelper
public static IHtmlString Script(this HtmlHelper helper, params string[] urls) 2 { 3 var bundleDirectory = "~/bundles/scripts/" + MakeBundleName(".js", urls); 4 var thisBundle = new ScriptBundle(bundleDirectory).Include(urls); 5 BundleTable.Bundles.Add(thisBundle); return Scripts.Render(bundleDirectory); 6 } 7 public static IHtmlString Style(this HtmlHelper helper, params string[] urls) 8 { 9 var bundleDirectory = "~/bundles/styles/" + MakeBundleName(".css", urls); 10 var thisBundle = new StyleBundle(bundleDirectory).Include(urls); 11 BundleTable.Bundles.Add(thisBundle); 12 return Styles.Render(bundleDirectory); 13 } 14 private static string MakeBundleName(string type, params string[] urls) 15 { 16 var bundleSections = new List(); 17 foreach (var item in urls) 18 { 19 bundleSections.Add(item.Replace("~/", "").Replace("/", "_").Replace(type, "")); 20 } 21 return string.Join(";", bundleSections.ToArray()); 22 }
对HtmlHelper进行扩展过后,在前台页面进行,将文件并排包入包中,然后扩展的Helper会把这些CSS进行压缩
1 @section head{
2 @Html.Style("~/Content/alice/box/box.css",
3 "~/Content/Alice/box/theme/orange.css", 4 "~/Content/Alice/tab/tab.css", 5 "~/Content/Benefits/CentralPurchasing.css", 6 "~/Content/Benefits/Index.css") 7 }
经过压缩过后,浏览器仍然可以识别css和js的代码,并且减小了文件的大小,浏览速度大大的提高!
效果在项目发布后可以体现出来,所以记得配置IIS。