diff --git a/server/index.js b/server/index.js index 139cd64c..7ddce95c 100644 --- a/server/index.js +++ b/server/index.js @@ -200,17 +200,19 @@ export default class Server { }, // It's very important keep this route's param optional. + // (but it should support as many as params, seperated by '/') // Othewise this will lead to a pretty simple DOS attack. // See more: https://github.com/zeit/next.js/issues/2617 - '/_next/:path?': async (req, res, params) => { + '/_next/:path*': async (req, res, params) => { const p = join(__dirname, '..', 'client', ...(params.path || [])) await this.serveStatic(req, res, p) }, // It's very important keep this route's param optional. + // (but it should support as many as params, seperated by '/') // Othewise this will lead to a pretty simple DOS attack. // See more: https://github.com/zeit/next.js/issues/2617 - '/static/:path?': async (req, res, params) => { + '/static/:path*': async (req, res, params) => { const p = join(this.dir, 'static', ...(params.path || [])) await this.serveStatic(req, res, p) } diff --git a/test/integration/production/static/data/item.txt b/test/integration/production/static/data/item.txt new file mode 100644 index 00000000..a7130742 --- /dev/null +++ b/test/integration/production/static/data/item.txt @@ -0,0 +1 @@ +item \ No newline at end of file diff --git a/test/integration/production/test/index.test.js b/test/integration/production/test/index.test.js index 5e06271f..5128f707 100644 --- a/test/integration/production/test/index.test.js +++ b/test/integration/production/test/index.test.js @@ -107,6 +107,8 @@ describe('Production Usage', () => { // See: https://github.com/zeit/next.js/issues/2617 await renderViaHTTP(appPort, '/_next/') await renderViaHTTP(appPort, '/static/') + const data = await renderViaHTTP(appPort, '/static/data/item.txt') + expect(data).toBe('item') }) })