Files

4.6 KiB

Nasadenie na Netlify

Netlify ponúka výborný hosting statických webov so štedrým bezplatným plánom.

Nasadenie jedným kliknutím

Nasadiť na Netlify

Ručné nasadenie

Krok 1: Pripojte repozitár

  1. Prihláste sa do Netlify
  2. Kliknite na „Add new site“ → „Import an existing project“
  3. Pripojte svoj účet GitHub
  4. 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:

[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 = 200

::: warning Dô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

  1. Prejdite do Site settings → Domain management
  2. Kliknite na „Add custom domain“
  3. Postupujte podľa pokynov na konfiguráciu DNS

Veľké médiá

Pre veľké WASM súbory zvážte zapnutie Netlify Large Media:

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:

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:

[build.environment]
  NODE_VERSION = "20"

Pomalé prvé načítanie

Zapnite optimalizáciu zdrojov v Site settings → Build & deploy → Asset optimization.