mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-05 11:52:48 +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 маюць абмежаванне 50MB. Паколькі BentoPDF з'яўляецца статычным сайтам, гэта не павінна вас закрануць, але модулі WASM вялікія (каля 100MB агулам). Пераканайцеся, што яны раздаюцца з папкі `/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`.
|