mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-05 20:02:47 +01:00
123 lines
4.8 KiB
Markdown
123 lines
4.8 KiB
Markdown
# Розгортання у Vercel
|
||
|
||
[Vercel](https://vercel.com) пропонує найпростіше розгортання статичних сайтів.
|
||
|
||
## Розгортання в один клік
|
||
|
||
[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
|
||
|
||
## Ручне розгортання
|
||
|
||
### Крок 1: Створіть форк репозиторію
|
||
|
||
Створіть форк [bentopdf/bentopdf](https://github.com/alam00000/bentopdf) у своєму акаунті GitHub.
|
||
|
||
### Крок 2: Імпортуйте у Vercel
|
||
|
||
1. Перейдіть на [vercel.com/new](https://vercel.com/new)
|
||
2. Виберіть свій форк репозиторію
|
||
3. Налаштуйте проєкт:
|
||
|
||
| Параметр | Значення |
|
||
| ---------------- | --------------- |
|
||
| 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" і дочекайтеся завершення збірки.
|
||
|
||
## Власний домен
|
||
|
||
1. Перейдіть до налаштувань проєкту
|
||
2. Відкрийте "Domains"
|
||
3. Додайте свій домен
|
||
4. Налаштуйте DNS відповідно до інструкцій
|
||
|
||
## Обмеження
|
||
|
||
::: warning Великі файли
|
||
Серверні функції 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-corp`
|
||
- `Cross-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`.
|