DokuDateikonventionen
Dateikonventionen
Reservierte Namen und Regeln unter src/routes/.
Dateien weiterleiten
| Datei | Wird |
|---|---|
index.nexy, index.md, index.mdx, index.py |
die Route seines Verzeichnisses |
about.nexy |
/about |
[slug].nexy |
dynamisches Segment {slug} |
[...path].nexy |
Alleskönner {path:path} |
(group)/page.nexy |
/page: Die Gruppe erscheint nicht in der URL |
name.py |
API-Handler; Funktionsnamen GET, POST, ... sind die Methoden |
name.tsx, .jsx, .vue, .svelte |
Client-Route, wenn das Framework mit useFF aktiviert ist |
src/routes/
index.nexy/
about.nexy/about
(marketing)/
pricing.nexy/pricing
blog/
index.md/blog
[slug].nexy/blog/{slug}
docs/
[...path].nexy/docs/{path:path}
api/
users.pyGET /api/users, POST /api/users
async def GET(): return {"users": []} async def POST(): return {"created": True}Reservierte Dateien
| Datei | Rolle | Einzelheiten |
|---|---|---|
layout.nexy |
Servermodus: umschließt jede Seite darunter; Der Root besitzt das HTML-Dokument | layout.nexy |
layout.tsx |
Client-Modus (React): Der Root besitzt das HTML-Dokument, verschachtelte Seiten umschließen | layout.tsx |
layout.vue, layout.svelte |
Client-Modus: verschachtelte Layouts | layout.vue, layout.svelte |
notfound.nexy |
404-Seite für sein Verzeichnis | Fehlerseiten |
errors.nexy |
500 Seiten für sein Verzeichnis | Fehlerseiten |
forbidden.nexy |
403-Seite für sein Verzeichnis | Fehlerseiten pro Ordner |
unauthorized.nexy |
401-Seite für sein Verzeichnis | Fehlerseiten pro Ordner |
loading.nexy |
reserviert; Noch kein Laufzeiteffekt | Fehlerseiten |
middleware.py |
ein async def middleware(request, call_next), der die Anforderungen des Verzeichnisses und darunter umschließt |
Middleware-Dateien |
dependencies.py |
eine dependencies = [fn, ...]-Liste, die auf das Verzeichnis und seine untergeordneten Verzeichnisse angewendet wird |
Abhängigkeiten |
__init__.py |
Python Paketmarkierung | |
favicon.ico |
serviert bei /favicon.ico |
useLayoutExtensions, useNotFoundExtensions, useErrorsExtensions, useForbiddenExtensions, useUnauthorizedExtensions und useLoadingExtensions reservieren weitere Erweiterungen für diese Namen. Siehe Konfiguration.
Die beiden Python Dateien der Tabelle nebeneinander in einem Ordner:
from nexy.http import Request async def middleware(request: Request, call_next): response = await call_next(request) response.headers["x-admin"] = "1" return responsefrom nexy.http import Header, HTTPException def require_admin(x_role: str = Header(...)) -> None: if x_role != "admin": raise HTTPException(status_code=403, detail="Admins only") dependencies = [require_admin]Und eine Seite, die den 404-Fehler ihres Ordners beantwortet:
<h1>Page not found</h1><p><a href="/">Back home</a></p>Ignorierte Dateien
- Eine Datei oder ein Ordner, die mit
_oder.beginnt: Verwenden Sie sie für Teiltexte, Entwürfe und Hilfsdateien. - Eine Datei, deren Erweiterung für das Projekt nicht aktiv ist: Sie wird mit einer Warnung übersprungen.
src/routes/
index.nexy/
_card.nexyignored: a partial the pages include
_helpers/ignored, with everything inside
format.py
.draft.nexyignored: a draft
Eine Datei pro URL
Zwei Dateien, die zur gleichen URL aufgelöst werden, werden beide registriert. Setzen Sie blog.nexy nicht neben blog/index.nexy.
src/routes/
blog.nexy/blog
blog/
index.nexy/blog as well: keep only one of the two
Draußen src/routes/
| Ordner | Zweck |
|---|---|
src/components/ |
Von Seiten importierte Komponenten; niemals Routen |
src/apps/ |
Controller und Module des modularen Routers |
public/ |
statische Dateien, bereitgestellt im Stammverzeichnis: public/logo.svg ist /logo.svg (auch unter /public/) |
__nexy__/ |
generierte Ausgabe; nicht festlegen |
my-app/
nexyconfig.py
public/
logo.svg/logo.svg
src/
routes/the routes
components/
Counter.tsximported by pages, never served on its own
apps/the modular router, when you use it
__nexy__/generated: add it to .gitignore