diff --git a/packages/docusaurus/src/client/preload.ts b/packages/docusaurus/src/client/preload.ts index fec374ad4b6b..1411581742fc 100644 --- a/packages/docusaurus/src/client/preload.ts +++ b/packages/docusaurus/src/client/preload.ts @@ -17,7 +17,9 @@ import {matchRoutes} from 'react-router-config'; * @returns Promise object represents whether pathname has been preloaded */ export default function preload(pathname: string): Promise { - const matches = matchRoutes(routes, pathname); + const matches = Array.from(new Set([pathname, decodeURI(pathname)])) + .map((p) => matchRoutes(routes, p)) + .flat(); return Promise.all(matches.map((match) => match.route.component.preload?.())); }