Nasadenie na Netlify
Netlify ponúka výborný hosting statických webov so štedrým bezplatným plánom.
Nasadenie jedným kliknutím
Ručné nasadenie
Krok 1: Pripojte repozitár
- Prihláste sa do Netlify
- Kliknite na „Add new site“ → „Import an existing project“
- Pripojte svoj účet GitHub
- Vyberte svoj fork BentoPDF
Krok 2: Nakonfigurujte nastavenia zostavenia
| Nastavenie | Hodnota |
|---|---|
| Príkaz zostavenia | npm run build |
| Publikačný adresár | dist |
| Verzia Node | 18+ |
Krok 3: Nasaďte
Kliknite na „Deploy site“ a počkajte na zostavenie.
Konfiguračný súbor
V koreňovom adresári projektu vytvorte netlify.toml:
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 = 200Dôležité
Hlavičky Cross-Origin-Embedder-Policy a Cross-Origin-Opener-Policy sú potrebné pre konverzie Word/ODT/Excel/PowerPoint do PDF. Bez nich nie je SharedArrayBuffer dostupný a engine LibreOffice WASM sa nepodarí inicializovať.
Hlavičky Content-Encoding: gzip pri súboroch .wasm.gz a .data.gz hovoria prehliadaču, aby ich automaticky dekomprimoval. Bez nich prehliadač dostane surové gzip bajty a kompilácia WASM zlyhá.
Premenné prostredia
Nastavte ich v Site settings → Environment variables:
| Premenná | Popis |
|---|---|
SIMPLE_MODE | Nastavte na true pre minimálne zostavenie |
VITE_BRAND_NAME | Vlastný názov značky (nahrádza „BentoPDF“) |
VITE_BRAND_LOGO | Cesta k logu relatívne k public/ (napr. images/my-logo.svg) |
VITE_FOOTER_TEXT | Vlastný text päty / autorských práv |
VITE_DEFAULT_LANGUAGE | Predvolený jazyk rozhrania (napr. fr, de, es) |
Vlastná doména
- Prejdite do Site settings → Domain management
- Kliknite na „Add custom domain“
- Postupujte podľa pokynov na konfiguráciu DNS
Veľké médiá
Pre veľké WASM súbory zvážte zapnutie Netlify Large Media:
bash
netlify lm:setup
git lfs track "*.wasm"Riešenie problémov
Konverzia Word/ODT/Excel do PDF sa zasekne na 55 %
Ak sa konverzie dokumentov zaseknú na 55 %, otvorte konzolu DevTools a skontrolujte:
js
console.log(window.crossOriginIsolated); // should be true
console.log(typeof SharedArrayBuffer); // should be "function"Ak je crossOriginIsolated false, hlavičky COEP/COOP z vášho netlify.toml sa neuplatňujú. Uistite sa, že súbor je v koreňovom adresári projektu, a nasaďte znova.
Ak v konzole vidíte expected magic word 00 61 73 6d, found 1f 8b 08 08, súborom .wasm.gz chýbajú hlavičky Content-Encoding: gzip. Uistite sa, že bloky [[headers]] pre soffice.wasm.gz a soffice.data.gz sú vo vašom netlify.toml.
Zostavenie zlyhá
Skontrolujte kompatibilitu verzie Node:
toml
[build.environment]
NODE_VERSION = "20"Pomalé prvé načítanie
Zapnite optimalizáciu zdrojov v Site settings → Build & deploy → Asset optimization.