- Notifications
You must be signed in to change notification settings - Fork 68
_redirects sorted wrong when using catch all route and dynamic routes #153
Description
The change #145 "revert route/redirect sorting logic to static then dynamic" causes the _redirects
file to be sorted wrong when using an optional catch all route and dynamic paths.
How to reproduce
This problem happens when we have the following routes:
pages/_app.js pages/[[...any]].js pages/[bar]/test.js pages/test.js
Clone https://github.com/amuttsch/non-routes
Execute the following command
yarn install yarn netlify
Problem
The resulting _redirects
file looks like this on version ^2.8.3
# Next-on-Netlify Redirects /_next/data/tveFS5JTA64mmnqiHIWfA/test.json /.netlify/functions/next_test 200 /_next/data/tveFS5JTA64mmnqiHIWfA/index.json /.netlify/functions/next_any 200 /_next/data/tveFS5JTA64mmnqiHIWfA/* /.netlify/functions/next_any 200 <------ catches ":bar/test.json" /api/hello /.netlify/functions/next_api_hello 200 /test /.netlify/functions/next_test 200 /_next/data/tveFS5JTA64mmnqiHIWfA/:bar/test.json /.netlify/functions/next_bar_test 200 /_next/image* url=:url w=:width q=:quality /.netlify/functions/next_image?url=:url&w=:width&q=:quality 200 /:bar/test /.netlify/functions/next_bar_test 200 / /.netlify/functions/next_any 200 /_next/* /_next/:splat 200 /* /.netlify/functions/next_any 200
The data routes /_next/data
are split into two groups. /_next/data/tveFS5JTA64mmnqiHIWfA/* /.netlify/functions/next_any 200
catches any data route, but /_next/data/tveFS5JTA64mmnqiHIWfA/:bar/test.json /.netlify/functions/next_bar_test 200
is below this redirect. This causes our application to fail to load data when the user does a client side transition.
Expected
Previous to 2.8.3
the file looks like this:
# Next-on-Netlify Redirects /_next/data/xcFf_YKEf4dQzabGKlRTV/test.json /.netlify/functions/next_test 200 /_next/data/xcFf_YKEf4dQzabGKlRTV/:bar/test.json /.netlify/functions/next_bar_test 200 /_next/data/xcFf_YKEf4dQzabGKlRTV/index.json /.netlify/functions/next_any 200 /_next/data/xcFf_YKEf4dQzabGKlRTV/* /.netlify/functions/next_any 200 /_next/image* url=:url w=:width q=:quality /.netlify/functions/next_image?url=:url&w=:width&q=:quality 200 /api/hello /.netlify/functions/next_api_hello 200 /test /.netlify/functions/next_test 200 /:bar/test /.netlify/functions/next_bar_test 200 / /.netlify/functions/next_any 200 /_next/* /_next/:splat 200 /* /.netlify/functions/next_any 200
Workaround: Downgrade next-on-netlify
to 2.8.2
.