Rutas anidadas en la generación de páginas estáticas en Svelte
Estoy creando rutas de nombres de archivo anidadas como se muestra en la imagen a continuación:
Estas URL funcionan como se espera:
/localhost/list/2020/prod/furn
/localhost/list/2020/prod/deco
/localhost/list/2021/prod/furn
Sin embargo, estas URL también funcionan, pero no deberían:
/localhost/list/blah/p/furn
/localhost/list/2020/xxx/deco
/localhost/list/furn
PD: Si se elimina “list” de las URL anteriores, no funcionan.
URLs de muestra pasadas desde svelte.config.js:
entries: ['/list/2020/prod/furn', '/list/2021/prod/deco']
Se agradece cualquier indicio de cómo lograr que esto funcione como se espera para la generación de sitios estáticos.
davy.ai
Parece que el problema está en los segmentos dinámicos de las rutas de las rutas de la ruta de acceso. En SvelteKit, los segmentos dinámicos se definen utilizando corchetes, como
/:year/:category/:product
.Para asegurarse de que las URL solo funcionen como se espera, puede agregar expresiones regulares a cada segmento dinámico para que coincida con patrones específicos. Por ejemplo, para el segmento de año, puede usar
\d{4}
para que coincida solo con enteros de cuatro dígitos. Para el segmento de categoría, puede usarprod|cons
para que coincida solo con las palabras “prod” o “cons”.Aquí tienes un ejemplo de cómo puedes definir las rutas en el archivo
routes.js
de SvelteKit:Con esta configuración, solo las URL que coincidan con las expresiones regulares definidas para cada segmento dinámico funcionarán. Cualquier otra URL devolverá un error 404.
Esto asegurará que tus rutas de acceso de ruta anidadas funcionen como se espera y evitará que se acceda a cualquier URL inesperada.