在宝塔面板中部署 Vue 项目打包后的 dist 文件作为前端

在宝塔面板中部署 Vue 项目打包后的 dist 文件作为前端,通常有以下两种常见方式。你可以根据你的实际需求选择:


✅ 方式一:使用 Nginx 站点直接托管静态文件(推荐)

适用于前后端分离架构,前端纯静态资源,后端 API 通过反向代理或跨域调用。

步骤如下:
  1. 打包 Vue 项目

    bash 复制代码
    npm run build

    会在项目根目录生成 dist 文件夹。

  2. 登录宝塔面板 → 网站 → 添加站点

    • 域名:填写你的前端访问域名(如 web.yourdomain.com)
    • 根目录:建议设置为 /www/wwwroot/web.yourdomain.com
  3. 上传 dist 文件到该站点根目录

    • 可通过宝塔的「文件」功能上传并解压
    • 或使用 SFTP 工具(如 WinSCP、FileZilla)上传
    • 确保 dist 中的内容(如 index.html, js/, css/)直接放在网站根目录下
  4. 配置 Nginx(通常默认即可,但需注意 history 模式)

    如果你 Vue Router 使用的是 history 模式,需要添加以下伪静态规则(否则刷新页面会 404):

    nginx 复制代码
    location / {
        try_files $uri $uri/ /index.html;
    }

    在宝塔面板中:

    • 进入该站点 → 「配置文件」或「伪静态」
    • 添加上述代码(放在 server {} 块内)
  5. 确保后端 API 可跨域访问(开发阶段)

    • 生产环境建议前端通过 Nginx 反向代理 API 请求,避免跨域
    • 或在 Spring Boot 后端配置 CORS(仅临时方案)

✅ 方式二:通过 Nginx 反向代理 + 静态资源混合(进阶)

如果你希望用同一个域名同时提供前端页面和后端 API(例如:https://yourdomain.com/ 访问前端,https://yourdomain.com/api/... 调用后端),可以这样配置:

Nginx 配置示例:
nginx 复制代码
server {
    listen 80;
    server_name yourdomain.com;
    root /www/wwwroot/yourdomain.com;  # 放 dist 的地方
    index index.html;

    # 静态资源
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 代理 API 到 Spring Boot(假设后端运行在 8080 端口)
    location /api/ {
        proxy_pass http://127.0.0.1:8080/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

💡 注意:Spring Boot 应用需监听 0.0.0.0:8080(或你指定的端口),且防火墙/安全组允许本地回环访问。


🔒 补充建议

  • HTTPS:在宝塔中可一键申请 Let's Encrypt 证书,提升安全性。
  • 缓存优化 :可在 Nginx 中为 js/css 设置长期缓存。
  • 部署自动化 :可结合 CI/CD(如 GitHub Actions + rsync)自动更新 dist。

如果你已经有一个 Spring Boot 项目在运行(比如通过宝塔的「Java 项目」管理器启动),只需确保前端 dist 由 Nginx 托管,并正确处理路由和 API 代理即可。

相关推荐
仿生狮子36 分钟前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
夏幻灵4 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
Lvan的前端笔记4 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习4 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194055 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风6 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn7 小时前
框架性能优化
前端
雪芽蓝域zzs8 小时前
第 5 节:Marker 点击弹出 InfoWindow 信息窗口
vue.js
回眸&啤酒鸭9 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013849 小时前
2026,程序员的时代拐点到了
android·前端·后端