Розгортання у Vercel
Vercel пропонує найпростіше розгортання статичних сайтів.
Розгортання в один клік
Ручне розгортання
Крок 1: Створіть форк репозиторію
Створіть форк bentopdf/bentopdf у своєму акаунті GitHub.
Крок 2: Імпортуйте у Vercel
- Перейдіть на vercel.com/new
- Виберіть свій форк репозиторію
- Налаштуйте проєкт:
| Параметр | Значення |
|---|---|
| Framework Preset | Vite |
| Build Command | npm run build |
| Output Directory | dist |
| Install Command | npm install |
Крок 3: Змінні середовища (необов’язково)
Додайте їх за потреби:
| Змінна | Опис |
|---|---|
SIMPLE_MODE | Встановіть true для мінімального інтерфейсу |
VITE_BRAND_NAME | Власна назва бренду (замінює "BentoPDF") |
VITE_BRAND_LOGO | Шлях до логотипа відносно public/ (наприклад, images/my-logo.svg) |
VITE_FOOTER_TEXT | Власний текст футера/авторських прав |
VITE_DEFAULT_LANGUAGE | Мова інтерфейсу за замовчуванням (наприклад, fr, de, es) |
Крок 4: Розгортання
Натисніть "Deploy" і дочекайтеся завершення збірки.
Власний домен
- Перейдіть до налаштувань проєкту
- Відкрийте "Domains"
- Додайте свій домен
- Налаштуйте DNS відповідно до інструкцій
Обмеження
Великі файли
Серверні функції Vercel мають ліміт 50 МБ. Оскільки BentoPDF є статичним сайтом, це не повинно вплинути на вас, але модулі WASM великі (загалом ~100 МБ). Переконайтеся, що вони віддаються з папки /public.
Усунення неполадок
Тайм-аут збірки
Якщо збірка завершується за тайм-аутом, спробуйте:
json
// vercel.json
{
"buildCommand": "npm run build",
"outputDirectory": "dist"
}Помилка 404 після оновлення сторінки
Додайте vercel.json для маршрутизації SPA:
json
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}Не працює перетворення Word/ODT/Excel у PDF
Перетворення через LibreOffice WASM потребують SharedArrayBuffer, для якого на всіх сторінках потрібні такі заголовки відповіді:
Cross-Origin-Embedder-Policy: require-corpCross-Origin-Opener-Policy: same-origin
Попередньо стиснуті файли .wasm.gz і .data.gz також потребують Content-Encoding: gzip, щоб браузер їх розпакував.
Додайте це до свого vercel.json:
json
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }],
"headers": [
{
"source": "/(.*)",
"headers": [
{ "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" },
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
{ "key": "Cross-Origin-Resource-Policy", "value": "cross-origin" }
]
},
{
"source": "/libreoffice-wasm/soffice.wasm.gz",
"headers": [
{ "key": "Content-Type", "value": "application/wasm" },
{ "key": "Content-Encoding", "value": "gzip" }
]
},
{
"source": "/libreoffice-wasm/soffice.data.gz",
"headers": [
{ "key": "Content-Type", "value": "application/octet-stream" },
{ "key": "Content-Encoding", "value": "gzip" }
]
}
]
}Щоб перевірити, відкрийте консоль DevTools і виконайте console.log(window.crossOriginIsolated): має повернутися true.