summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/honest-flies-care.md5
-rw-r--r--packages/astro/src/@types/astro.ts1
-rw-r--r--packages/astro/src/core/config/settings.ts2
-rw-r--r--packages/astro/src/core/routing/manifest/create.ts4
4 files changed, 9 insertions, 3 deletions
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<typeof AstroConfigSchema> {
// 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,
});
});