101 lines
2.3 KiB
Markdown
101 lines
2.3 KiB
Markdown
|
|
# Demo 部署指南
|
||
|
|
|
||
|
|
## 问题说明
|
||
|
|
|
||
|
|
部署后出现 `404: Not Found` 错误,找不到 `/static/js/draco/draco_wasm_wrapper.js` 等文件。
|
||
|
|
|
||
|
|
这是因为 3D 模型使用了 Draco 压缩,需要 Draco 解码器文件。
|
||
|
|
|
||
|
|
## 解决方案
|
||
|
|
|
||
|
|
### 需要部署的文件结构
|
||
|
|
|
||
|
|
```
|
||
|
|
demo/
|
||
|
|
├── index.html
|
||
|
|
├── viewer.html
|
||
|
|
├── lib/
|
||
|
|
│ ├── bim-engine-sdk.umd.js
|
||
|
|
│ └── bim-engine-sdk.umd.js.map
|
||
|
|
├── static/
|
||
|
|
│ └── js/
|
||
|
|
│ └── draco/
|
||
|
|
│ ├── draco_decoder.js
|
||
|
|
│ ├── draco_decoder.wasm
|
||
|
|
│ ├── draco_encoder.js
|
||
|
|
│ ├── draco_wasm_wrapper.js
|
||
|
|
│ └── DRACOLoader.js
|
||
|
|
└── model/
|
||
|
|
└── test2/
|
||
|
|
└── (模型文件)
|
||
|
|
```
|
||
|
|
|
||
|
|
### 自动复制文件
|
||
|
|
|
||
|
|
在项目根目录执行:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 方法1: 复制所有文件(推荐)
|
||
|
|
npm run copy:demo-all
|
||
|
|
|
||
|
|
# 方法2: 分步复制
|
||
|
|
npm run copy:demo # 复制 SDK 文件
|
||
|
|
npm run copy:demo-draco # 复制 Draco 文件
|
||
|
|
```
|
||
|
|
|
||
|
|
在 demo 目录执行:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
npm run copy-all # 复制 SDK 和 Draco 文件
|
||
|
|
```
|
||
|
|
|
||
|
|
### 手动部署步骤
|
||
|
|
|
||
|
|
如果自动脚本不可用,手动复制以下文件到服务器:
|
||
|
|
|
||
|
|
1. **必需文件**:
|
||
|
|
- `index.html` 或 `viewer.html`
|
||
|
|
- `lib/bim-engine-sdk.umd.js`
|
||
|
|
- `static/js/draco/` 目录下的所有文件
|
||
|
|
|
||
|
|
2. **可选文件**:
|
||
|
|
- `lib/bim-engine-sdk.umd.js.map` (用于调试)
|
||
|
|
- `model/` 目录 (如果加载本地模型)
|
||
|
|
|
||
|
|
### Nginx 配置示例
|
||
|
|
|
||
|
|
```nginx
|
||
|
|
server {
|
||
|
|
listen 80;
|
||
|
|
server_name your-domain.com;
|
||
|
|
|
||
|
|
root /var/www/demo;
|
||
|
|
index index.html viewer.html;
|
||
|
|
|
||
|
|
location / {
|
||
|
|
try_files $uri $uri/ /index.html;
|
||
|
|
}
|
||
|
|
|
||
|
|
# 确保 draco 文件可访问
|
||
|
|
location /static/ {
|
||
|
|
expires 1y;
|
||
|
|
add_header Cache-Control "public, immutable";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## 验证部署
|
||
|
|
|
||
|
|
部署后访问以下 URL 确认文件存在:
|
||
|
|
|
||
|
|
- `http://your-domain.com/static/js/draco/draco_wasm_wrapper.js`
|
||
|
|
- `http://your-domain.com/static/js/draco/draco_decoder.wasm`
|
||
|
|
|
||
|
|
如果返回 404,说明文件未正确部署。
|
||
|
|
|
||
|
|
## 注意事项
|
||
|
|
|
||
|
|
1. **路径硬编码**: Draco 路径在 SDK 中硬编码为 `/static/js/draco/`,请勿修改目录结构
|
||
|
|
2. **WASM 文件**: 确保 `.wasm` 文件的 MIME 类型正确配置为 `application/wasm`
|
||
|
|
3. **跨域问题**: 如果 draco 文件在不同域名,需要配置 CORS
|