Despliegue
Xingluo es un sitio puramente estático; pnpm build genera el directorio dist/, alojable en cualquier servicio de hosting estático.
Salida de compilación
bashpnpm build
El dist/ generado contiene:
- Todas las páginas HTML estáticas (incluyendo espejos
[locale]/) - Activos JS / CSS / fuentes bajo
_astro/ - El índice de búsqueda
search/ - El
og.pnga nivel de sitio y por artículo rss.xml,sitemap-index.xml,robots.txt- Activos estáticos bajo
public/(favicon, imagen OG predeterminada, etc.)
Variables de entorno
Establecidas en tiempo de compilación:
| Variable | Descripción |
|---|---|
PUBLIC_GOOGLE_SITE_VERIFICATION | Valor de verificación de Google Search Console (opcional) |
Ejemplo en PowerShell:
powershell$env:PUBLIC_GOOGLE_SITE_VERIFICATION = "su-código" pnpm build
En entornos CI (ej. GitHub Actions), inyecte mediante env antes del paso de compilación.
Lista de verificación previa al despliegue
Antes de desplegar, asegúrese:
site.urlenxingluo.config.tsestá configurado con el dominio de producciónsite.title,site.description,site.author, etc. están personalizados- Si un sistema de comentarios está habilitado, la configuración del proveedor (giscus repoId, twikoo envId, waline serverURL) tiene valores reales
public/default-og.jpg(o elsite.ogImageconfigurado) se reemplaza con la imagen OG predeterminada del sitiopublic/favicon.svgse reemplaza con el icono del sitio
Plataformas de alojamiento estático
Netlify / Vercel / Cloudflare Pages
| Configuración | Valor |
|---|---|
| Comando de compilación | pnpm build |
| Directorio de salida | dist |
| Versión de Node | 22.12.0+ |
| Gestor de paquetes | pnpm |
Un vercel.json opcional para Vercel:
json{ "buildCommand": "pnpm build", "outputDirectory": "dist", "framework": "astro" }
GitHub Pages
Despliegue mediante GitHub Actions; ejemplo de flujo de trabajo:
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
Si despliega bajo un subruta (ej.
https://user.github.io/repo/), configurebase: "/repo/"enastro.config.ts.
Nginx / Autoalojado
Sube dist/ al servidor; ejemplo de configuración Nginx:
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; } # Caché de activos estáticos location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf)$ { expires 1y; add_header Cache-Control "public, immutable"; } }
Notas de rendimiento
- Los activos bajo
_astro/tienen nombres de archivo hash y pueden almacenarse en caché a largo plazo (immutable) - Los archivos HTML no deben almacenarse en caché (o solo brevemente) para garantizar actualizaciones oportunas del contenido
- Los índices de Flexsearch se cargan bajo demanda; no se necesita una estrategia de caché especial
- Después del despliegue, verifique que las imágenes OG, RSS y el sitemap sean accesibles
Backends de sistemas de comentarios
Si habilita un sistema de comentarios, despliegue el backend correspondiente:
| Sistema de comentarios | Requisito de backend |
|---|---|
| giscus | Ninguno; use el servicio público de giscus.app (o autoalojado giscus-vercel) |
| twikoo | Despliegue el servidor twikoo (Vercel / CloudBase / autoalojado) |
| waline | Despliegue el servidor waline (Vercel / Cloudflare / autoalojado) |
Consulte la documentación oficial de cada sistema de comentarios y Sistema de comentarios.
Artículos relacionados
Búsqueda
1 min de lecturaGuía de búsqueda de Xingluo que cubre la integración de búsqueda de texto completo Flexsearch, generación de índices, UI, búsqueda multilingüe y rendimiento.
SEO
1 min de lecturaGuía SEO de Xingluo que cubre Open Graph, Twitter Card, canonical, datos estructurados JSON-LD, RSS y sitemap.