ДокументацияНа основе файлов

Маршрутизация на основе файлов

Маршрут - это файл. URL-адрес - это путь к файлу относительно src/routes/ без расширения.

Файл по URL

Файл 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 сопоставляется со своим каталогом, а не с /index. Каталог в скобках представляет собой группу: он упорядочивает файлы, не отображаясь в URL-адресе.

В клиентском режиме файлы подкачки имеют вид .tsx, .vue или .svelte вместо .nexy; правила URL такие же.

Два файла этой таблицы: страница, считывающая свой сегмент, и обработчик, отвечающий на JSON.

src/маршруты/блог/[слизняк].nexy
---slug: prop[str]---<h1>{{ slug }}</h1>
src/routes/api/users.py
async def GET():    return {"users": []}

Два режима

useCSR решает, что это за страницы. Их нельзя смешивать в одном проекте: Nexy отказывается запускаться, когда страница сервера находится рядом с клиентским маршрутом.

Режим Страницы Корневая раскладка См.
Сервер (useCSR = False) .nexy, .md, .mdx layout.nexy Режим сервера и режим клиента
Клиент (useCSR = True) файлы фреймворка layout.tsx макет.tsx

Файлы .py являются обработчиками API в обоих режимах.

Переключатель - это одна строка 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

Что не является маршрутом

  • Зарезервированные имена файлов: layout.*, loading.nexy, errors.nexy, notfound.nexy, dependencies.py, middleware.py, __init__.py.
  • Файлы и папки, начинающиеся с _ или .: используйте их для частичных изображений и черновиков.
  • Расширения, которые не активны для вашего проекта. Файл, расширение которого неактивно, пропускается с предупреждением.
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

Один файл на каждый URL

Регистрируются два файла, которые разрешаются по одному и тому же URL-адресу. Не создавайте blog.nexy рядом с blog/index.nexy и не смешивайте index.nexy и index.py для одного и того же пути. Выберите один.

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

В этом разделе

Папка Что он охватывает
страницы/ страницы, динамические маршруты, группы маршрутов
макеты/ одна страница на каждый тип файла макета
обработчики/ .py обработчики, проверка и ошибки
зависимости/ dependencies.py, охранники
промежуточное программное обеспечение/ middleware.py
ошибки/ не найденные страницы и страницы ошибок
навигация/ ссылки, крючки
в реальном времени/ WebSocket
наследование правила наследования в одной таблице

Следующие шаги

Изменить на GitHub

Enter открывает результат, Esc закрывает.