Auf dieser Seite
Andere Hoster
Ein Clay-Build ist ein Ordner mit statischen Dateien, publish/public. Jeder Dienst und jeder Server, der statische Dateien ausliefert, kann ihn hosten. Überall kommt es auf drei Dinge an:
- Build-Befehl:
npx clay build --strict - Ausgabeordner:
publish/public - Basis-URL: Liegt die Seite nicht an der Wurzel ihrer Domain, setze
baseURLin derclay.yamloderCLAY_BASE_URLin den Build-Einstellungen.
#Netlify
Unter Site configuration → Build & deploy oder in einer netlify.toml:
[build]
command = "npx clay build --strict"
publish = "publish/public"
[build.environment]
NODE_VERSION = "22"Netlify liefert für unbekannte Adressen von selbst die 404.html aus.
#Cloudflare Pages
Lege aus deinem Repository ein Projekt an und stelle ein:
| Einstellung | Wert |
|---|---|
| Framework preset | None |
| Build command | npx clay build --strict |
| Build output directory | publish/public |
| Umgebungsvariable | NODE_VERSION = 22 |
#GitLab Pages
GitLab veröffentlicht den Ordner public eines Jobs namens pages. Verschiebe den Build in der .gitlab-ci.yml dorthin:
pages:
image: node:22
variables:
GIT_DEPTH: 0 # ganze Historie für die Daten der letzten Änderung
script:
- npm ci
- npx clay build --strict
- mv publish/public public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCHProjektseiten auf GitLab liegen wie auf GitHub unter dem Namen des Projekts: Setze baseURL: "/mein-projekt/".
#Dein eigener Webserver
Kopiere publish/public auf den Server und liefere es als statische Dateien aus. Jede Seite ist ein Ordner mit einer index.html, der Server sollte also:
- für Ordneradressen die
index.htmlausliefern (/guides/setup/→/guides/setup/index.html), - unbekannte Adressen mit der
404.htmlund Status 404 beantworten.
Für nginx, mit der Seite an der Wurzel der Domain:
server {
listen 80;
server_name docs.example.com;
root /var/www/docs;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
}Mit Docker:
FROM nginx:alpine
COPY publish/public /usr/share/nginx/htmlTipp
npx clay preview verhält sich wie diese Hoster. Funktioniert eine Seite dort, funktioniert sie auch auf dem Server.