mirror of
https://github.com/facebook/docusaurus.git
synced 2025-08-03 16:59:06 +02:00
fix(v2): include base url in 404 route (#2237)
* fix(v2): include base url in 404 route * Update tests
This commit is contained in:
parent
2d08787ed5
commit
06044cffa7
4 changed files with 22 additions and 18 deletions
|
@ -55,7 +55,7 @@ export default [
|
|||
];
|
||||
",
|
||||
"routesPaths": Array [
|
||||
"404.html",
|
||||
"/404.html",
|
||||
"/blog",
|
||||
],
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ export default [
|
|||
];
|
||||
",
|
||||
"routesPaths": Array [
|
||||
"404.html",
|
||||
"/404.html",
|
||||
"/docs/hello",
|
||||
"docs/foo/baz",
|
||||
],
|
||||
|
@ -181,7 +181,7 @@ export default [
|
|||
];
|
||||
",
|
||||
"routesPaths": Array [
|
||||
"404.html",
|
||||
"/404.html",
|
||||
"",
|
||||
],
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ describe('loadRoutes', () => {
|
|||
},
|
||||
],
|
||||
};
|
||||
const result = await loadRoutes([nestedRouteConfig]);
|
||||
const result = await loadRoutes([nestedRouteConfig], '/');
|
||||
expect(result).toMatchSnapshot();
|
||||
});
|
||||
|
||||
|
@ -64,7 +64,7 @@ describe('loadRoutes', () => {
|
|||
],
|
||||
},
|
||||
};
|
||||
const result = await loadRoutes([flatRouteConfig]);
|
||||
const result = await loadRoutes([flatRouteConfig], '/');
|
||||
expect(result).toMatchSnapshot();
|
||||
});
|
||||
|
||||
|
@ -73,20 +73,21 @@ describe('loadRoutes', () => {
|
|||
component: 'hello/world.js',
|
||||
} as RouteConfig;
|
||||
|
||||
expect(loadRoutes([routeConfigWithoutPath])).rejects.toMatchInlineSnapshot(`
|
||||
[Error: Invalid routeConfig (Path must be a string and component is required)
|
||||
{"component":"hello/world.js"}]
|
||||
`);
|
||||
expect(loadRoutes([routeConfigWithoutPath], '/')).rejects
|
||||
.toMatchInlineSnapshot(`
|
||||
[Error: Invalid routeConfig (Path must be a string and component is required)
|
||||
{"component":"hello/world.js"}]
|
||||
`);
|
||||
|
||||
const routeConfigWithoutComponent = {
|
||||
path: '/hello/world',
|
||||
} as RouteConfig;
|
||||
|
||||
expect(loadRoutes([routeConfigWithoutComponent])).rejects
|
||||
expect(loadRoutes([routeConfigWithoutComponent], '/')).rejects
|
||||
.toMatchInlineSnapshot(`
|
||||
[Error: Invalid routeConfig (Path must be a string and component is required)
|
||||
{"path":"/hello/world"}]
|
||||
`);
|
||||
[Error: Invalid routeConfig (Path must be a string and component is required)
|
||||
{"path":"/hello/world"}]
|
||||
`);
|
||||
});
|
||||
|
||||
test('route config with empty (but valid) path string', async () => {
|
||||
|
@ -95,7 +96,7 @@ describe('loadRoutes', () => {
|
|||
component: 'hello/world.js',
|
||||
} as RouteConfig;
|
||||
|
||||
const result = await loadRoutes([routeConfig]);
|
||||
const result = await loadRoutes([routeConfig], '/');
|
||||
expect(result).toMatchSnapshot();
|
||||
});
|
||||
});
|
||||
|
|
|
@ -143,7 +143,7 @@ export async function load(siteDir: string): Promise<Props> {
|
|||
routesChunkNames,
|
||||
routesConfig,
|
||||
routesPaths,
|
||||
} = await loadRoutes(pluginsRouteConfigs);
|
||||
} = await loadRoutes(pluginsRouteConfigs, baseUrl);
|
||||
|
||||
const genRegistry = generate(
|
||||
generatedFilesDir,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import {genChunkName} from '@docusaurus/utils';
|
||||
import {genChunkName, normalizeUrl} from '@docusaurus/utils';
|
||||
import _ from 'lodash';
|
||||
import {stringify} from 'querystring';
|
||||
import {
|
||||
|
@ -38,7 +38,10 @@ function getModulePath(target: Module): string {
|
|||
return `${target.path}${queryStr}`;
|
||||
}
|
||||
|
||||
export async function loadRoutes(pluginsRouteConfigs: RouteConfig[]) {
|
||||
export async function loadRoutes(
|
||||
pluginsRouteConfigs: RouteConfig[],
|
||||
baseUrl: string,
|
||||
) {
|
||||
const routesImports = [
|
||||
`import React from 'react';`,
|
||||
`import ComponentCreator from '@docusaurus/ComponentCreator';`,
|
||||
|
@ -46,7 +49,7 @@ export async function loadRoutes(pluginsRouteConfigs: RouteConfig[]) {
|
|||
const registry: {
|
||||
[chunkName: string]: ChunkRegistry;
|
||||
} = {};
|
||||
const routesPaths: string[] = ['404.html'];
|
||||
const routesPaths: string[] = [normalizeUrl([baseUrl, '404.html'])];
|
||||
const routesChunkNames: {
|
||||
[routePath: string]: ChunkNames;
|
||||
} = {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue