summaryrefslogtreecommitdiff
path: root/packages/astro/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/astro/src')
-rw-r--r--packages/astro/src/core/build/generate.ts2
-rw-r--r--packages/astro/src/core/config.ts4
-rw-r--r--packages/astro/src/vite-plugin-astro-server/index.ts3
-rw-r--r--packages/astro/src/vite-plugin-markdown/index.ts15
4 files changed, 14 insertions, 10 deletions
diff --git a/packages/astro/src/core/build/generate.ts b/packages/astro/src/core/build/generate.ts
index e76d51ca3..d68f8faf3 100644
--- a/packages/astro/src/core/build/generate.ts
+++ b/packages/astro/src/core/build/generate.ts
@@ -179,7 +179,7 @@ async function generatePath(
// If a base path was provided, append it to the site URL. This ensures that
// all injected scripts and links are referenced relative to the site and subpath.
const site =
- astroConfig.base && astroConfig.base !== './'
+ astroConfig.base !== '/'
? joinPaths(astroConfig.site?.toString() || 'http://localhost/', astroConfig.base)
: astroConfig.site;
const links = createLinkStylesheetElementSet(linkIds.reverse(), site);
diff --git a/packages/astro/src/core/config.ts b/packages/astro/src/core/config.ts
index 57b45ef1b..de947530d 100644
--- a/packages/astro/src/core/config.ts
+++ b/packages/astro/src/core/config.ts
@@ -94,8 +94,8 @@ export const AstroConfigSchema = z.object({
base: z
.string()
.optional()
- .default('./')
- .transform((val) => (val ? appendForwardSlash(trimSlashes(val)) : val)),
+ .default('/')
+ .transform((val) => appendForwardSlash(trimSlashes(val))),
trailingSlash: z
.union([z.literal('always'), z.literal('never'), z.literal('ignore')])
.optional()
diff --git a/packages/astro/src/vite-plugin-astro-server/index.ts b/packages/astro/src/vite-plugin-astro-server/index.ts
index d21fa7e8e..0fdb8705b 100644
--- a/packages/astro/src/vite-plugin-astro-server/index.ts
+++ b/packages/astro/src/vite-plugin-astro-server/index.ts
@@ -114,8 +114,7 @@ async function handle404Response(
// HACK: redirect without the base path for assets in publicDir
const redirectTo =
req.method === 'GET' &&
- config.base &&
- config.base !== './' &&
+ config.base !== '/' &&
pathname.startsWith(config.base) &&
pathname.replace(config.base, '/');
diff --git a/packages/astro/src/vite-plugin-markdown/index.ts b/packages/astro/src/vite-plugin-markdown/index.ts
index 231977002..105ff47e0 100644
--- a/packages/astro/src/vite-plugin-markdown/index.ts
+++ b/packages/astro/src/vite-plugin-markdown/index.ts
@@ -78,13 +78,18 @@ export default function markdown({ config }: AstroPluginOptions): Plugin {
// Return the file's JS representation, including all Markdown
// frontmatter and a deferred `import() of the compiled markdown content.
if (id.endsWith(`.md${MARKDOWN_IMPORT_FLAG}`)) {
- const sitePathname = config.site
- ? appendForwardSlash(new URL(config.base, config.site).pathname)
- : '/';
+ const sitePathname = appendForwardSlash(
+ config.site ? new URL(config.base, config.site).pathname : config.base
+ );
+
const fileId = id.replace(MARKDOWN_IMPORT_FLAG, '');
- const fileUrl = fileId.includes('/pages/')
- ? fileId.replace(/^.*\/pages\//, sitePathname).replace(/(\/index)?\.md$/, '')
+ let fileUrl = fileId.includes('/pages/')
+ ? fileId.replace(/^.*?\/pages\//, sitePathname).replace(/(\/index)?\.md$/, '')
: undefined;
+ if (fileUrl && config.trailingSlash === 'always') {
+ fileUrl = appendForwardSlash(fileUrl);
+ }
+
const source = await fs.promises.readFile(fileId, 'utf8');
const { data: frontmatter } = matter(source);
return {