Skip to content

Commit 7ff0f2b

Browse files
authored
[fix] prerendering path and layout fixes (#7639)
Fixes #7618 - root layout/error should always be included Fixes #7633 - windows path conversion
1 parent a7f13cd commit 7ff0f2b

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

.changeset/curly-suits-lay.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/kit': patch
3+
---
4+
5+
[fix] prerendering path and layout fixes

packages/kit/src/core/generate_manifest/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ export function generate_manifest({ build_data, relative_path, routes, format =
1919
*/
2020
const reindexed = new Map();
2121
/**
22-
* @type {Set<any>} All nodes actually used in the routes definition (prerendered routes are omitted)
22+
* All nodes actually used in the routes definition (prerendered routes are omitted).
23+
* Root layout/error is always included as they are needed for 404 and root errors.
24+
* @type {Set<any>}
2325
*/
24-
const used_nodes = new Set();
26+
const used_nodes = new Set([0, 1]);
2527

2628
for (const route of routes) {
2729
if (route.page) {

packages/kit/src/exports/vite/preview/index.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { pathToFileURL } from 'url';
55
import { getRequest, setResponse } from '../../../exports/node/index.js';
66
import { installPolyfills } from '../../../exports/node/polyfills.js';
77
import { SVELTE_KIT_ASSETS } from '../../../constants.js';
8-
import { loadEnv } from 'vite';
8+
import { loadEnv, normalizePath } from 'vite';
99

1010
/** @typedef {import('http').IncomingMessage} Req */
1111
/** @typedef {import('http').ServerResponse} Res */
@@ -100,7 +100,9 @@ export async function preview(vite, vite_config, svelte_config) {
100100

101101
const { pathname } = new URL(/** @type {string} */ (req.url), 'http://dummy');
102102

103-
let filename = join(svelte_config.kit.outDir, 'output/prerendered/pages' + pathname);
103+
let filename = normalizePath(
104+
join(svelte_config.kit.outDir, 'output/prerendered/pages' + pathname)
105+
);
104106
let prerendered = is_file(filename);
105107

106108
if (!prerendered) {

0 commit comments

Comments
 (0)