public ActionResult Manifest() { var result = new ManifestResult { NetworkResources = new string[] {"*"} }; result.CacheResources.Add("/favicon.ico"); result.CacheResources.Add("/signalr/hubs"); if (Settings.Default.EnableBundles) { var urlHelper = new UrlHelper(Request.RequestContext); result.CacheResources.Add(urlHelper.StylesBundleUrl().ToString()); result.CacheResources.Add(urlHelper.ScriptsBundleUrl().ToString()); } if (Settings.Default.EnableCloudfront) { result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.glyphicons_halflings_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.glyphicons_halflings_white_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.markers_1_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.markers_2_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.markers_3_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.markers_4_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.markers_5_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.markers_location_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.touch_icon_v1_114_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.touch_icon_v1_144_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.touch_icon_v1_57_png); result.CacheResources.Add(Settings.Default.CloudfrontBaseurl + Links.Content.images.touch_icon_v1_72_png); } result.CacheResources.Add("http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"); result.CacheResources.Add("http://fonts.googleapis.com/css?family=EB+Garamond"); result.CacheResources.Add("http://themes.googleusercontent.com/static/fonts/ebgaramond/v4/kYZt1bJ8UsGAPRGnkXPeFYbN6UDyHWBl620a-IRfuBk.woff"); using (var sha = SHA256.Create()) { string joined = string.Join("\n", result.CacheResources); byte[] data = sha.ComputeHash(Encoding.UTF8.GetBytes(joined)); var sb = new StringBuilder(); for (int i = 0; i < data.Length; i++) sb.Append(data[i].ToString("x2")); result.Version = sb.ToString(); } return result; }