diff --git a/src/middleware.ts b/src/middleware.ts index 5444e4d..ec66360 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -25,19 +25,19 @@ export function cache(): Middleware { const response = await cache.match(req); if (response) { + // headers are immutable, so we need to clone the headers + // to add the Accept-Ranges header for range requests + const headers = new Headers(response.headers); + headers.set("Accept-Ranges", "bytes"); + if (c.req.header("If-None-Match") === response.headers.get("ETag")) { return new Response(null, { status: 304, statusText: "Not Modified", - headers: response.headers, + headers, }); } - // headers are immutable, so we need to clone the headers - // to add the Accept-Ranges header for range requests - const headers = new Headers(response.headers); - headers.set("Accept-Ranges", "bytes"); - return new Response(response.body, { status: response.status, statusText: response.statusText,