diff --git a/quartz/components/pages/404.tsx b/quartz/components/pages/404.tsx index 622a18d..c69b21a 100644 --- a/quartz/components/pages/404.tsx +++ b/quartz/components/pages/404.tsx @@ -1,10 +1,9 @@ import { i18n } from "../../i18n" import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "../types" -const NotFound: QuartzComponent = ({ cfg }: QuartzComponentProps) => { - // If baseUrl contains a pathname after the domain, use this as the home link +const NotFound: QuartzComponent = ({ cfg, ctx }: QuartzComponentProps) => { const url = new URL(`https://${cfg.baseUrl ?? "example.com"}`) - const baseDir = url.pathname + const baseDir = ctx.argv.serve ? "/" : url.pathname return (
diff --git a/quartz/components/renderPage.tsx b/quartz/components/renderPage.tsx index 5387912..e314551 100644 --- a/quartz/components/renderPage.tsx +++ b/quartz/components/renderPage.tsx @@ -337,7 +337,12 @@ export function renderPage( const lang = componentData.fileData.frontmatter?.lang ?? cfg.locale?.split("-")[0] ?? "en" const direction = i18n(cfg.locale).direction ?? "ltr" - const basePath = cfg.baseUrl ? new URL(`https://${cfg.baseUrl}`).pathname.replace(/\/$/, "") : "" + // During local dev (--serve), the dev server serves from root without the + // baseUrl subpath, so basePath must be empty to avoid broken links. + const basePath = + componentData.ctx.argv.serve || !cfg.baseUrl + ? "" + : new URL(`https://${cfg.baseUrl}`).pathname.replace(/\/$/, "") const doc = (