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; }
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; }
public bool IsRendered(Bundle bundle) { return renderedBundleNames.Contains(bundle.Name); }