diff options
author | 2021-04-23 15:20:19 -0400 | |
---|---|---|
committer | 2021-04-23 15:20:19 -0400 | |
commit | 62ddea7bb7cb91fb5091daec4ed4709742d3c123 (patch) | |
tree | 104ea208341a386d484a3663a6feb15931333027 | |
parent | 3ffeb0f7b7b16f8a0939a1ae80be90cccbd98579 (diff) | |
download | astro-62ddea7bb7cb91fb5091daec4ed4709742d3c123.tar.gz astro-62ddea7bb7cb91fb5091daec4ed4709742d3c123.tar.zst astro-62ddea7bb7cb91fb5091daec4ed4709742d3c123.zip |
Support the /404 route in the dev server (#128)
* Support the /404 route in the dev server
* Fix status code
* Formatting
-rw-r--r-- | examples/snowpack/package-lock.json | 2 | ||||
-rw-r--r-- | src/dev.ts | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/examples/snowpack/package-lock.json b/examples/snowpack/package-lock.json index d1731c2ec..b802bc687 100644 --- a/examples/snowpack/package-lock.json +++ b/examples/snowpack/package-lock.json @@ -1014,7 +1014,7 @@ "rollup": "^2.43.1", "rollup-plugin-terser": "^7.0.2", "sass": "^1.32.8", - "snowpack": "^3.3.2", + "snowpack": "^3.3.4", "svelte": "^3.35.0", "tiny-glob": "^0.2.8", "unified": "^9.2.1", diff --git a/src/dev.ts b/src/dev.ts index c20d9c723..505a99425 100644 --- a/src/dev.ts +++ b/src/dev.ts @@ -34,6 +34,7 @@ export default async function dev(astroConfig: AstroConfig) { if (result.contentType) { res.setHeader('Content-Type', result.contentType); } + res.statusCode = 200; res.write(result.contents); res.end(); break; @@ -43,8 +44,18 @@ export default async function dev(astroConfig: AstroConfig) { const reqPath = decodeURI(fullurl.pathname); error(logging, 'static', 'Not found', reqPath); res.statusCode = 404; - res.setHeader('Content-Type', 'text/plain'); - res.end('Not Found'); + + const fourOhFourResult = await runtime.load('/404'); + if (fourOhFourResult.statusCode === 200) { + if (fourOhFourResult.contentType) { + res.setHeader('Content-Type', fourOhFourResult.contentType); + } + res.write(fourOhFourResult.contents); + } else { + res.setHeader('Content-Type', 'text/plain'); + res.write('Not Found'); + } + res.end(); break; } case 500: { |