diff --git a/.changeset/legal-camels-poke.md b/.changeset/legal-camels-poke.md new file mode 100644 index 000000000000..fd1c897ce7dc --- /dev/null +++ b/.changeset/legal-camels-poke.md @@ -0,0 +1,5 @@ +--- +'astro': minor +--- + +Ensure Astro.url.pathname returns the correct file extension when build.format.preserved is enabled diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts index 511484bb17e7..b66b002e24c0 100644 --- a/packages/astro/src/core/build/generate.ts +++ b/packages/astro/src/core/build/generate.ts @@ -467,7 +467,12 @@ function getUrlForPath( switch (format) { case 'directory': case 'preserve': { - ending = trailingSlash === 'never' ? '' : '/'; + const isNamedPathnameRegex = /\/[a-zA-Z-0-9]+/; + if (isNamedPathnameRegex.test(pathname)) { + ending = '.html' + } else { + ending = trailingSlash === 'never' ? '' : '/'; + } break; } case 'file':