From 33cdc8622a56c8e5465b7a50f627ecc568870c6b Mon Sep 17 00:00:00 2001 From: Benjamin MENANT Date: Thu, 22 Jun 2023 09:20:35 +0200 Subject: [PATCH] fix(astro:assets): inject /_image endpoint with prerendered=false on serverLikeOutput (#7423) --- .changeset/honest-flies-care.md | 5 +++++ packages/astro/src/@types/astro.ts | 1 + packages/astro/src/core/config/settings.ts | 2 +- packages/astro/src/core/routing/manifest/create.ts | 4 ++-- 4 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 .changeset/honest-flies-care.md diff --git a/.changeset/honest-flies-care.md b/.changeset/honest-flies-care.md new file mode 100644 index 000000000..fac5de21e --- /dev/null +++ b/.changeset/honest-flies-care.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Ensure injected `/_image` endpoint for image optimization is not prerendered on hybrid output. diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index 1a5679f03..43069aa17 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -1293,6 +1293,7 @@ export type InjectedScriptStage = 'before-hydration' | 'head-inline' | 'page' | export interface InjectedRoute { pattern: string; entryPoint: string; + prerender?: boolean; } export interface AstroConfig extends z.output { // Public: diff --git a/packages/astro/src/core/config/settings.ts b/packages/astro/src/core/config/settings.ts index 1494a5edd..c5e9def8c 100644 --- a/packages/astro/src/core/config/settings.ts +++ b/packages/astro/src/core/config/settings.ts @@ -24,7 +24,7 @@ export function createBaseSettings(config: AstroConfig): AstroSettings { adapter: undefined, injectedRoutes: config.experimental.assets && isServerLikeOutput(config) - ? [{ pattern: '/_image', entryPoint: 'astro/assets/image-endpoint' }] + ? [{ pattern: '/_image', entryPoint: 'astro/assets/image-endpoint', prerender: false }] : [], pageExtensions: ['.astro', '.html', ...SUPPORTED_MARKDOWN_FILE_EXTENSIONS], contentEntryTypes: [markdownContentEntryType], diff --git a/packages/astro/src/core/routing/manifest/create.ts b/packages/astro/src/core/routing/manifest/create.ts index 4a998fee9..90c134f40 100644 --- a/packages/astro/src/core/routing/manifest/create.ts +++ b/packages/astro/src/core/routing/manifest/create.ts @@ -387,7 +387,7 @@ export function createRouteManifest( comparator(injectedRouteToItem({ config, cwd }, a), injectedRouteToItem({ config, cwd }, b)) ) .reverse() // prepend to the routes array from lowest to highest priority - .forEach(({ pattern: name, entryPoint }) => { + .forEach(({ pattern: name, entryPoint, prerender: prerenderInjected }) => { let resolved: string; try { resolved = require.resolve(entryPoint, { paths: [cwd || fileURLToPath(config.root)] }); @@ -440,7 +440,7 @@ export function createRouteManifest( component, generate, pathname: pathname || void 0, - prerender, + prerender: prerenderInjected ?? prerender, }); });