示例#1
0
        /// <summary>
        /// Adds the given url to the ResourceDefinition and appends a cacheBuster to it.
        /// </summary>
        /// <param name="self">The ResourceDefinition file to add the url to.</param>
        /// <param name="url">The URL to add to the ResourceDefinition.</param>
        /// <param name="debugUrl">The url to use in debug mode. Use this to specify an unminified, unobfuscated version of your resource.</param>
        /// <param name="frequent">If true, the cacheBuster will be updated each minute. Otherwise it'll be changed daily.</param>
        public static ResourceDefinition SetUrlWithCacheBuster(this ResourceDefinition self, string url, string debugUrl = null, bool frequent = false)
        {
            if (string.IsNullOrWhiteSpace(url))
            {
                throw new ArgumentNullException("url");
            }

            var cacheBustQueryString = frequent
                ? (long)new TimeSpan(DateTime.Now.Ticks - DateTime.MinValue.Ticks).TotalMinutes
                : DateTime.Today.Ticks;

            var urlWithCacheBuster = string.Format("{0}?{1}", url, cacheBustQueryString);

            return(!string.IsNullOrWhiteSpace(debugUrl)
                ? self.SetUrl(urlWithCacheBuster, string.Format("{0}?{1}", debugUrl, cacheBustQueryString))
                : self.SetUrl(urlWithCacheBuster));
        }
示例#2
0
        public static ResourceDefinition SetVersionUrl(
            this ResourceDefinition definition,
            string url,
            string urlDebug)
        {
            if (string.IsNullOrEmpty(url))
            {
                throw new ArgumentNullException("url");
            }

            if (definition.Version != null)
            {
                url += "?ver=" + definition.Version;

                if (urlDebug != null)
                {
                    urlDebug += "?ver=" + definition.Version;
                }
            }

            return(definition.SetUrl(url, urlDebug));
        }
 public static void SetUrlProtocolRelative(this ResourceDefinition resource, Uri url)
 {
     resource.SetUrl(url.ToStringWithoutScheme());
 }