Estoy usando el sistema de enrutamiento de aplicaciones Next.JS.
Creé una ruta dinámica con una estructura como pages/[country]/[language]/index.js .
También hay una ruta estática con estructura pages/cz/cz/index.js .
Aparece el problema, luego estoy en una página estática e intento navegar a través del componente de Link para acceder al contenido de la ruta estática en mi caso, debería ir a la página de inicio y volver a cargar la misma página, en lugar de que se represente el contenido de la ruta dinámica.
En mi caso, el enlace es solo una navegación simple a la página de inicio <Link to="/"> para ambas rutas. Pero tal vez el problema radica en cómo se configura el archivo index.js para rutas predefinidas y dinámicas.
cz/cz/index.js
export { default } from '../../../components/HomePage/'; const { getStaticProps } = createRoute({ path: '/', locale: 'cs', }); export { getStaticProps };[país]/[idioma]/index.js
export { default } from '../../../components/HomePage/v2'; const { getStaticPaths, getStaticProps } = createRoute({ path: '/', exclude: ['cs'], otherLocales: ['cs'], }); export { getStaticPaths, getStaticProps };crear ruta
export default function createRoute({ path, otherLocales, getPathParams, locale, } = {}) { const locales = _.without(include, ...exclude); return { getStaticPaths: createGetStaticPaths({ locales, getPathParams, }), getStaticProps: createGetStaticProps({ path, locale, locales, otherLocales, }), }; }Estructura de las páginas
Entonces, ¿por qué [country]/[language]/index.js anula cz/cz/index.js ?
Entonces, ¿hay algo disponible en la ruta nextJS para que coincida con una URL absolutamente?
¿O asegurarse de que pasar de la ruta estática vaya a la ruta estática?
Siguiendo la documentación de next.js, las rutas predefinidas tienen prioridad sobre las rutas dinámicas, y las rutas dinámicas sobre las rutas catch all. Echa un vistazo a los siguientes ejemplos:
pages/post/create.js - Coincidirá con /post/createpages/post/[pid].js - Coincidirá con /post/1, /post/abc, etc. Pero no /post/createpages/post/[...slug].js : coincidirá con /post/1/2, /post/a/b/c, etc. Pero no con /post/create, /post/abc En su caso, ha definido rutas predefinidas cz/cz/index.js y esta ruta tiene prioridad
Si está utilizando redirecciones, tenga en cuenta que se procesan antes de que la próxima vez vaya a las páginas.
Los redireccionamientos se verifican antes que el sistema de archivos que incluye páginas y archivos públicos.
https://nextjs.org/docs/api-reference/next.config.js/redirects