Distribuera till Netlify
Netlify erbjuder utmärkt hosting av statiska webbplatser med en generös gratisnivå.
Distribuera med ett klick
Manuell distribution
Steg 1: Anslut repositoryt
- Logga in på Netlify
- Klicka på "Add new site" → "Import an existing project"
- Anslut ditt GitHub-konto
- Välj din BentoPDF-fork
Steg 2: Konfigurera bygginställningar
| Inställning | Värde |
|---|---|
| Build command | npm run build |
| Publish directory | dist |
| Node version | 18+ |
Steg 3: Distribuera
Klicka på "Deploy site" och vänta tills bygget är klart.
Konfigurationsfil
Skapa netlify.toml i projektets rotmapp:
toml
[build]
command = "npm run build"
publish = "dist"
[build.environment]
NODE_VERSION = "18"
# Required security headers for SharedArrayBuffer (used by LibreOffice WASM)
[[headers]]
for = "/*"
[headers.values]
Cross-Origin-Embedder-Policy = "require-corp"
Cross-Origin-Opener-Policy = "same-origin"
Cross-Origin-Resource-Policy = "cross-origin"
# Pre-compressed LibreOffice WASM binary - must be served with Content-Encoding
[[headers]]
for = "/libreoffice-wasm/soffice.wasm.gz"
[headers.values]
Content-Type = "application/wasm"
Content-Encoding = "gzip"
Cache-Control = "public, max-age=31536000, immutable"
# Pre-compressed LibreOffice WASM data - must be served with Content-Encoding
[[headers]]
for = "/libreoffice-wasm/soffice.data.gz"
[headers.values]
Content-Type = "application/octet-stream"
Content-Encoding = "gzip"
Cache-Control = "public, max-age=31536000, immutable"
# Cache other WASM files
[[headers]]
for = "*.wasm"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
Content-Type = "application/wasm"
# SPA routing
[[redirects]]
from = "/*"
to = "/index.html"
status = 200Viktigt
Huvudena Cross-Origin-Embedder-Policy och Cross-Origin-Opener-Policy krävs för konvertering av Word/ODT/Excel/PowerPoint till PDF. Utan dem är SharedArrayBuffer otillgängligt och LibreOffice WASM-motorn kan inte initieras.
Huvudena Content-Encoding: gzip på filerna .wasm.gz och .data.gz får webbläsaren att packa upp dem automatiskt. Utan dem får webbläsaren rå gzip-data och WASM-kompileringen misslyckas.
Miljövariabler
Ange dessa under Site settings → Environment variables:
| Variabel | Beskrivning |
|---|---|
SIMPLE_MODE | Sätt till true för ett minimalt bygge |
VITE_BRAND_NAME | Eget varumärkesnamn (ersätter "BentoPDF") |
VITE_BRAND_LOGO | Logotypsökväg relativt public/ (t.ex. images/my-logo.svg) |
VITE_FOOTER_TEXT | Egen sidfots-/upphovsrättstext |
VITE_DEFAULT_LANGUAGE | Standardspråk för gränssnittet (t.ex. fr, de, es) |
Egen domän
- Gå till Site settings → Domain management
- Klicka på "Add custom domain"
- Följ anvisningarna för DNS-konfiguration
Stora mediefiler
För stora WASM-filer kan du överväga att aktivera Netlify Large Media:
bash
netlify lm:setup
git lfs track "*.wasm"Felsökning
Word/ODT/Excel till PDF fastnar på 55 %
Om dokumentkonverteringar hänger sig på 55 % öppnar du DevTools Console och kontrollerar:
js
console.log(window.crossOriginIsolated); // should be true
console.log(typeof SharedArrayBuffer); // should be "function"Om crossOriginIsolated är false tillämpas inte COEP/COOP-huvudena från din netlify.toml. Se till att filen ligger i projektets rotmapp och distribuera om.
Om du ser expected magic word 00 61 73 6d, found 1f 8b 08 08 i konsolen saknar filerna .wasm.gz huvudet Content-Encoding: gzip. Kontrollera att blocken [[headers]] för soffice.wasm.gz och soffice.data.gz finns i din netlify.toml.
Bygget misslyckas
Kontrollera att Node-versionen är kompatibel:
toml
[build.environment]
NODE_VERSION = "20"Långsam första laddning
Aktivera tillgångsoptimering under Site settings → Build & deploy → Asset optimization.