mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Fix the route redirect error when we've multiple path params. (#2652)
For an example, with a URL like: /static/data/hello.txt
This commit is contained in:
parent
84de7f9397
commit
10241fe610
|
@ -200,17 +200,19 @@ export default class Server {
|
||||||
},
|
},
|
||||||
|
|
||||||
// It's very important keep this route's param optional.
|
// 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.
|
// Othewise this will lead to a pretty simple DOS attack.
|
||||||
// See more: https://github.com/zeit/next.js/issues/2617
|
// 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 || []))
|
const p = join(__dirname, '..', 'client', ...(params.path || []))
|
||||||
await this.serveStatic(req, res, p)
|
await this.serveStatic(req, res, p)
|
||||||
},
|
},
|
||||||
|
|
||||||
// It's very important keep this route's param optional.
|
// 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.
|
// Othewise this will lead to a pretty simple DOS attack.
|
||||||
// See more: https://github.com/zeit/next.js/issues/2617
|
// 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 || []))
|
const p = join(this.dir, 'static', ...(params.path || []))
|
||||||
await this.serveStatic(req, res, p)
|
await this.serveStatic(req, res, p)
|
||||||
}
|
}
|
||||||
|
|
1
test/integration/production/static/data/item.txt
Normal file
1
test/integration/production/static/data/item.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
item
|
|
@ -107,6 +107,8 @@ describe('Production Usage', () => {
|
||||||
// See: https://github.com/zeit/next.js/issues/2617
|
// See: https://github.com/zeit/next.js/issues/2617
|
||||||
await renderViaHTTP(appPort, '/_next/')
|
await renderViaHTTP(appPort, '/_next/')
|
||||||
await renderViaHTTP(appPort, '/static/')
|
await renderViaHTTP(appPort, '/static/')
|
||||||
|
const data = await renderViaHTTP(appPort, '/static/data/item.txt')
|
||||||
|
expect(data).toBe('item')
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue