在宝塔面板中部署 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 代理即可。

相关推荐
默_笙18 小时前
🚤 CSS 布局的"圈地运动":BFC 就是浏览器的独立领地
前端·javascript
我爱写代码i18 小时前
AI对话绘画数字人源码 - uniapp前端
前端·人工智能·uni-app
OpenTiny社区18 小时前
太酷了!装上OpenTiny dsh‑genui这个插件,你的DeepSeek Harness点击就能干活了!
前端·ai编程
用户9385156350718 小时前
大模型记忆指南:从短时缓存到永久记忆,手把手带你吃透 LangChain Memory 管理
javascript·人工智能
ModyQyW18 小时前
vite-plugin-uni-pages 更新了什么
前端·uni-app
xqchen19 小时前
Web Components 普及困境深度解析:技术标准与工程实践的落差
javascript
爱丶不疚19 小时前
写给前端工程师的现代 Python 工程化最佳实践:从 pnpm 到 uv,从 CommonJS 到 src-layout
javascript·python·typescript
前端大卫19 小时前
H5 渲染 PDF 并添加高亮的两种方案【附源码】
前端
Dreams°12319 小时前
【Java后端+Vue前后端分离:内网正常、公网访问异常|5个高频经典踩坑完整复盘】
java·开发语言·vue.js
小蒜学长20 小时前
基于Springboot+Vue的环保行动志愿者招募系统设计与实现(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端