Bereitstellung
Xingluo ist eine rein statische Website; pnpm build erzeugt das dist/-Verzeichnis, das auf jedem statischen Hosting-Dienst gehostet werden kann.
Build-Ausgabe
bashpnpm build
Das generierte dist/ enthält:
- Alle statischen HTML-Seiten (inkl.
[locale]/-Spiegel) - JS-/CSS-/Schriftart-Assets unter
_astro/ - Den
search/-Suchindex - Das site-weite
og.pngund beitragsbezogeneog.png rss.xml,sitemap-index.xml,robots.txt- Statische Assets unter
public/(favicon, Standard-OG-Bild, usw.)
Umgebungsvariablen
Zur Build-Zeit gesetzt:
| Variable | Beschreibung |
|---|---|
PUBLIC_GOOGLE_SITE_VERIFICATION | Google Search Console-Verifizierungswert (optional) |
PowerShell-Beispiel:
powershell$env:PUBLIC_GOOGLE_SITE_VERIFICATION = "ihr-code" pnpm build
In CI-Umgebungen (z. B. GitHub Actions) über env vor dem Build-Schritt injizieren.
Checkliste vor der Bereitstellung
Stellen Sie vor der Bereitstellung sicher:
site.urlinxingluo.config.tsist auf die Produktionsdomain gesetztsite.title,site.description,site.authorusw. sind angepasst- Wenn ein Kommentarsystem aktiviert ist, enthält die Anbieterkonfiguration (giscus repoId, twikoo envId, waline serverURL) echte Werte
public/default-og.jpg(oder das konfiguriertesite.ogImage) wurde durch das Standard-OG-Bild der Site ersetztpublic/favicon.svgwurde durch das Site-Symbol ersetzt
Statische Hosting-Plattformen
Netlify / Vercel / Cloudflare Pages
| Konfiguration | Wert |
|---|---|
| Build-Befehl | pnpm build |
| Ausgabeverzeichnis | dist |
| Node-Version | 22.12.0+ |
| Paketmanager | pnpm |
Eine optionale vercel.json für Vercel:
json{ "buildCommand": "pnpm build", "outputDirectory": "dist", "framework": "astro" }
GitHub Pages
Bereitstellung über GitHub Actions; Beispiel-Workflow:
yamlname: Deploy on: push: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: 10 - uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm build env: PUBLIC_GOOGLE_SITE_VERIFICATION: ${{ secrets.GOOGLE_VERIFICATION }} - uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist
Bei Bereitstellung unter einem Unterpfad (z. B.
https://user.github.io/repo/) setzen Siebase: "/repo/"inastro.config.ts.
Nginx / Self-Hosted
Laden Sie dist/ auf den Server hoch; Beispiel-Nginx-Konfiguration:
nginxserver { listen 80; server_name xingluo.example.com; root /var/www/xingluo/dist; index index.html; location / { try_files $uri $uri/ $uri.html /404.html; } # Statisches Asset-Caching location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ { expires 1y; add_header Cache-Control "public, immutable"; } }
Leistungshinweise
- Assets unter
_astro/haben gehashte Dateinamen und können langfristig gecacht werden (immutable) - HTML-Dateien sollten nicht (oder nur kurz) gecacht werden, um zeitnahe Inhaltsaktualisierungen zu gewährleisten
- Flexsearch-Indizes werden bei Bedarf geladen; keine spezielle Caching-Strategie erforderlich
- Überprüfen Sie nach der Bereitstellung, ob OG-Bilder, RSS und die Sitemap erreichbar sind
Kommentarsystem-Backends
Wenn Sie ein Kommentarsystem aktivieren, stellen Sie das entsprechende Backend bereit:
| Kommentarsystem | Backend-Anforderung |
|---|---|
| giscus | Keine; nutzen Sie den giscus.app-öffentlichen Dienst (oder self-host giscus-vercel) |
| twikoo | Stellen Sie den twikoo-Server bereit (Vercel / CloudBase / Self-Host) |
| waline | Stellen Sie den waline-Server bereit (Vercel / Cloudflare / Self-Host) |
Siehe die offizielle Dokumentation der jeweiligen Kommentarsysteme und Kommentarsystem.