DocsBasado en archivos

Enrutamiento basado en archivos

Una ruta es un archivo. La URL es la ruta del archivo relativa a src/routes/, menos la extensión.

Archivo a URL

Archivo URL
index.nexy /
about.nexy /about
blog/index.nexy /blog
blog/[slug].nexy /blog/{slug}
docs/[...path].nexy /docs/{path:path}
(marketing)/pricing.nexy /pricing
api/users.py /api/users

index se asigna a su directorio, no a /index. Un directorio entre paréntesis es un grupo: organiza archivos sin aparecer en la URL.

En modo cliente los archivos de página son .tsx, .vue o .svelte en lugar de .nexy; las reglas de URL son las mismas.

Dos archivos de esa tabla: una página que lee su segmento y un controlador que responde JSON.

src/rutas/blog/[slug].nexy
---slug: prop[str]---<h1>{{ slug }}</h1>
src/rutas/api/usuarios.py
async def GET():    return {"users": []}

Dos modos

useCSR decide cuáles son las páginas. Los dos no se pueden mezclar en un proyecto: Nexy se niega a iniciarse cuando una página del servidor se encuentra al lado de la ruta de un cliente.

Modo paginas Diseño de raíz Ver
Servidor (useCSR = False) .nexy, .md, .mdx layout.nexy Modo servidor y modo cliente
Cliente (useCSR = True) archivos de marco layout.tsx diseño.tsx

.py los archivos son controladores de API en ambos modos.

El cambio es una línea de nexyconfig.py:

nexyconfig.py
from nexy.core.models import NexyConfigModelfrom nexy.frontend import react  class NexyConfig(NexyConfigModel):    useFF = react()    useCSR = True  # client mode: src/routes/*.tsx are the pages

que no es una ruta

  • Nombres de archivos reservados: layout.*, loading.nexy, errors.nexy, notfound.nexy, dependencies.py, middleware.py, __init__.py.
  • Archivos y carpetas que comienzan con _ o .: utilícelos para parciales y borradores.
  • Extensiones que no están activas para su proyecto. Un archivo cuya extensión está inactiva se omite con una advertencia.
src/routes/
layout.nexywraps the pages, not a route
middleware.pywraps the requests, not a route
index.nexy/
_card.nexya partial: no URL
.draft.nexya draft: no URL

Un archivo por URL

Se registran dos archivos que se resuelven en la misma URL. No cree blog.nexy junto a blog/index.nexy y no mezcle index.nexy y index.py para la misma ruta. Elige uno.

src/routes/
blog.nexy/blog
blog/
index.nexy/blog as well: delete one of the two

En esta sección

Carpeta lo que cubre
páginas/ páginas, rutas dinámicas, grupos de rutas
diseños/ una página por tipo de archivo de diseño
manejadores/ .py controladores, validación y errores
dependencias/ dependencies.py, guardias
software intermedio/ middleware.py
errores/ páginas no encontradas y de error
navegación/ enlaces, ganchos
tiempo real/ WebSocket
herencia las reglas de herencia en una tabla

Próximos pasos

Editar en GitHub

Enter abre el resultado, Esc lo cierra.