项目部署

开发完成后的目标是把应用"发布上线",让别人通过网址访问。Vue3 项目部署的本质是:先构建出纯静态文件(HTML/JS/CSS),再交给 Nginx 等 Web 服务器托管。本节完整演示这一过程。

打包构建

执行构建命令:

npm run build

构建完成后项目根目录出现 dist 文件夹,其中的 index.html 与 assets 就是全部上线资源。先在本地预览验证:

npm run preview

浏览器打开终端提示的地址(默认 http://localhost:4173/),确认功能正常。

上传到服务器

把 dist 内容上传到服务器,例如:

scp -r dist/* root@服务器IP:/var/www/taskhub/

配置 Nginx

为站点新建配置文件 /etc/nginx/conf.d/taskhub.conf:

server {
    listen       80;
    server_name  taskhub.example.com;

    root  /var/www/taskhub;      # 指向 dist 内容
    index index.html;

    # History 模式路由必须回退到 index.html
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 静态资源带哈希,可放心缓存 30 天
    location /assets/ {
        expires 30d;
    }
}

执行 nginx -t 检查语法,再 nginx -s reload 让配置生效。

为什么需要 try_files

本项目使用 History 模式路由(地址形如 /stats,没有 #)。直接刷新 /stats 时,服务器找不到该物理文件会返回 404。try_files $uri $uri/ /index.html 让服务器把这类请求交给前端路由处理,于是刷新任意页面都不报错。

配置 HTTPS

正式上线建议用 certbot 申请免费证书并开启 443:

certbot --nginx -d taskhub.example.com

certbot 会自动改写 Nginx 配置并加上 HTTP 跳转 HTTPS 的规则,浏览器地址栏出现小锁即成功。

用环境变量区分接口地址

前后端分离时,把接口地址放进 .env 文件:

# .env.production
VITE_API_BASE=https://api.example.com

代码里用 import.meta.env.VITE_API_BASE 读取,构建时自动替换为对应环境的值,一套代码适配多环境。

小结

部署链路总结为:npm run build 产出 dist → 上传服务器 → Nginx 指向 dist 并配置 try_files → 可选 HTTPS 与环境变量。任务系统到此全部完成,接下来用"博客项目"巩固所学。

笔记加载中…