4.3 KiB
4.3 KiB
部署说明文档
🚀 打包部署流程
1. 打包前准备
确保已安装依赖:
npm install
2. 执行打包
npm run build
打包完成后,会在项目根目录生成 dist 文件夹。
3. 缓存控制策略
本项目已配置完善的缓存控制策略,避免浏览器缓存导致更新不生效:
✅ 已配置的缓存方案
-
文件名 Hash 化(
vite.config.js已配置)- 所有 JS、CSS、图片等资源文件名都会带上 hash 值
- 例如:
index.a1b2c3d4.js、style.e5f6g7h8.css - 每次构建后,修改过的文件 hash 会变化,自动避免缓存
-
HTML 文件不缓存
index.html设置为不缓存,每次都会获取最新版本- 通过服务器配置实现(见下方)
📝 服务器配置
Apache 服务器(使用 .htaccess)
项目已包含 public/.htaccess 文件,打包后会自动复制到 dist 目录。
Nginx 服务器
参考项目根目录的 nginx.conf.example 文件,配置说明:
# HTML 文件不缓存
location / {
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-cache, no-store, must-revalidate";
}
# 静态资源长期缓存
location ~* \.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
4. 部署步骤
方法一:手动部署
- 将
dist目录下的所有文件上传到服务器 - 配置服务器(Apache 或 Nginx)
- 重启服务器
方法二:使用 FTP/SFTP
# 上传 dist 目录到服务器
scp -r dist/* user@your-server:/var/www/html/
方法三:使用 Docker(可选)
创建 Dockerfile:
FROM nginx:alpine
COPY dist /usr/share/nginx/html
COPY nginx.conf.example /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
5. 更新部署注意事项
⚠️ 每次更新部署时:
-
清理旧文件
# 删除服务器上的旧文件 rm -rf /var/www/html/* -
上传新文件
# 上传新的 dist 文件 scp -r dist/* user@your-server:/var/www/html/ -
清理服务器缓存(如果使用了缓存服务器)
# Nginx nginx -s reload # Apache systemctl reload apache2 -
通知用户清理浏览器缓存(可选)
- 可以在系统中添加版本提示
- 或者使用 Service Worker 强制更新
6. 验证部署
部署完成后,验证步骤:
-
清除浏览器缓存
- Chrome:
Ctrl + Shift + Delete或Cmd + Shift + Delete - 或使用隐身模式访问
- Chrome:
-
检查文件版本
- 打开浏览器开发者工具(F12)
- 查看 Network 标签
- 确认 JS/CSS 文件名带有新的 hash 值
-
检查 HTML 缓存
- 查看
index.html的响应头 - 确认
Cache-Control: no-cache
- 查看
7. 常见问题
Q1: 用户反馈看到的还是旧版本?
解决方案:
- 确认服务器配置正确(.htaccess 或 nginx 配置)
- 清理 CDN 缓存(如果使用了 CDN)
- 通知用户强制刷新(Ctrl + F5 或 Cmd + Shift + R)
Q2: 静态资源 404 错误?
解决方案:
- 检查资源路径配置
- 确认
vite.config.js中的base配置正确 - 检查服务器的静态文件路径
Q3: SPA 路由刷新 404?
解决方案:
- Apache: 确保
.htaccess中的 rewrite 规则生效 - Nginx: 确保配置了
try_files $uri $uri/ /index.html;
8. 自动化部署(可选)
使用 GitHub Actions
创建 .github/workflows/deploy.yml:
name: Deploy
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Deploy to server
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: /var/www/html/
9. 性能优化建议
- 启用 Gzip/Brotli 压缩
- 使用 CDN 加速静态资源
- 配置 HTTP/2
- 启用 HTTPS
📞 技术支持
如有部署问题,请联系技术团队。