From 633dd87b189f4bec720626d3f12369871e84c33b Mon Sep 17 00:00:00 2001 From: Tim Neutkens Date: Fri, 30 Nov 2018 17:09:23 +0100 Subject: [PATCH] Handle 404 thrown from send (#5779) --- packages/next-server/server/next-server.js | 2 +- test/integration/production/test/index.test.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/next-server/server/next-server.js b/packages/next-server/server/next-server.js index c4218b4388..10b62a04d2 100644 --- a/packages/next-server/server/next-server.js +++ b/packages/next-server/server/next-server.js @@ -231,7 +231,7 @@ export default class Server { try { return await serveStatic(req, res, path) } catch (err) { - if (err.code === 'ENOENT') { + if (err.code === 'ENOENT' || err.statusCode === 404) { this.render404(req, res) } else { throw err diff --git a/test/integration/production/test/index.test.js b/test/integration/production/test/index.test.js index 029bfb8cf3..e5c475f0aa 100644 --- a/test/integration/production/test/index.test.js +++ b/test/integration/production/test/index.test.js @@ -61,6 +61,12 @@ describe('Production Usage', () => { expect(res.status).toBe(404) }) + it('should render 404 for dotfiles in /static', async () => { + const url = `http://localhost:${appPort}/static/.env` + const res = await fetch(url) + expect(res.status).toBe(404) + }) + it('should render 501 if the HTTP method is not GET or HEAD', async () => { const url = `http://localhost:${appPort}/_next/abcdef` const methods = ['POST', 'PUT', 'DELETE'] -- GitLab