From 37d3de73dd6c3cbd89d10fe7b8ea68f745395cb9 Mon Sep 17 00:00:00 2001 From: MarSeventh <1193267292@qq.com> Date: Wed, 29 Jul 2026 16:31:55 +0800 Subject: [PATCH] fix: use URL endpoint for Pages image transforms --- functions/file/imageTransform.js | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/functions/file/imageTransform.js b/functions/file/imageTransform.js index f4bfbe42..28cfb40c 100644 --- a/functions/file/imageTransform.js +++ b/functions/file/imageTransform.js @@ -107,27 +107,19 @@ export async function transformImageRequestViaUrl(context) { sourceUrl.searchParams.delete('height'); sourceUrl.searchParams.delete('fit'); - const sourceHeaders = new Headers(request.headers); - for (const name of [ - 'If-Match', - 'If-Modified-Since', - 'If-None-Match', - 'If-Range', - 'If-Unmodified-Since', - 'Range', - ]) { - sourceHeaders.delete(name); - } + const transformOptions = Object.entries(imageTransform.options) + .map(([name, value]) => `${name}=${encodeURIComponent(value)}`) + .join(','); + const transformUrl = new URL( + `/cdn-cgi/image/${transformOptions}${sourceUrl.pathname}${sourceUrl.search}`, + sourceUrl.origin + ); try { - return await fetch(new Request(sourceUrl, { + return await fetch(new Request(transformUrl, { method: 'GET', - headers: sourceHeaders, - }), { - cf: { - image: imageTransform.options, - }, - }); + headers: request.headers, + })); } catch (error) { console.error('URL image transformation failed:', error); return imageTransformError(