mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-13 17:54:19 +01:00
feat: translate all pages, UI messages and docs and fix SEO redirects and indexing
This commit is contained in:
1 parent
5e019de5ae
commit
4edb1718cc
3344 files changed
+415643
-4759
No files matched your search
@@ -0,0 +1,122 @@
|
||||
# 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` | 최소 UI를 사용하려면 `true`로 설정 |
|
||||
| `VITE_BRAND_NAME` | 사용자 지정 브랜드 이름 ("BentoPDF" 대체) |
|
||||
| `VITE_BRAND_LOGO` | `public/` 기준 로고 경로 (예: `images/my-logo.svg`) |
|
||||
| `VITE_FOOTER_TEXT` | 사용자 지정 바닥글/저작권 텍스트 |
|
||||
| `VITE_DEFAULT_LANGUAGE` | 기본 UI 언어 (예: `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
|
||||
|
||||
SPA 라우팅을 위해 `vercel.json`을 추가합니다.
|
||||
|
||||
```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`가 반환되어야 합니다.
|
||||
Reference in new issue
Block a user