public virtual void WriteAsset(Bundle bundle, IEncoder encoder)
        {
            response.ContentType = bundle.ContentType;
            CacheLongTime(bundle.Hash.ToHexString(), bundle.BrowserTtl);

            using (var stream = bundle.Content)
            {
                stream.CopyTo(response.OutputStream);
            }

            encoder.Encode(response);
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="etag"></param>
 /// <param name="ttl">In minutes.</param>
 public virtual void WriteNotModified(Bundle bundle)
 {
     CacheLongTime(bundle.Hash.ToHexString(), bundle.BrowserTtl); // Some browsers seem to require a reminder to keep caching?!
     response.StatusCode = 304; // Not Modified
     response.SuppressContent = true;
 }
예제 #3
0
 public void MarkRendered(Bundle bundle)
 {
     renderedBundleNames.Add(bundle.Name);
 }
 public virtual bool IsNotModified(Bundle bundle)
 {
     var actualETag = bundle.Hash.ToHexString();
     var givenETag = request.Headers["If-None-Match"];
     return givenETag == actualETag;
 }
예제 #5
0
 public bool IsRendered(Bundle bundle)
 {
     return renderedBundleNames.Contains(bundle.Name);
 }