bc2cb2210f
Noticed this while reviewing https://github.com/vercel/next.js/pull/14376. After having done https://github.com/vercel/next.js/pull/13699, this code didn't feel right to me: ```js function prepareRoute(path: string) { path = delBasePath(path || '') // this /index rewrite is problematic, it makes pages/index.js // and pages/index/index.js point to the same thing: return toRoute(!path || path === '/' ? '/index' : path) } ``` Added a nested index page to the prerender tests and found it was rendering the `/` route on navigation. This uncovered 2 more places around the dataroute where the index path was not translated correctly. **edit:** Just to note that there was nothing wrong with https://github.com/vercel/next.js/pull/14376, the issue was already there, I just noticed it while reading that PR
14 lines
411 B
TypeScript
14 lines
411 B
TypeScript
// Translates a logical route into its pages asset path (relative from a common prefix)
|
|
// "asset path" being its javascript file, data file, prerendered html,...
|
|
export default function getAssetPathFromRoute(
|
|
route: string,
|
|
ext: string = ''
|
|
): string {
|
|
const path =
|
|
route === '/'
|
|
? '/index'
|
|
: /^\/index(\/|$)/.test(route)
|
|
? `/index${route}`
|
|
: `${route}`
|
|
return path + ext
|
|
}
|