加油
努力

前端打包后的dist文件怎么上传到云服务器并访问?

将前端打包后的 dist 文件上传到云服务器并访问,通常分为 准备服务器环境上传文件配置 Web 服务器验证访问 四个核心步骤。

以下是基于最常见的 Nginx + Linux (Ubuntu/CentOS) 环境的详细操作指南:

第一步:准备云服务器环境

首先,你需要登录到你的云服务器(如阿里云 ECS、腾讯云 CVM、AWS EC2 等)。

  1. 安装 Nginx(推荐作为静态资源服务器):

    • Ubuntu/Debian:
      sudo apt update
      sudo apt install nginx -y
    • CentOS/RHEL:
      sudo yum install epel-release -y
      sudo yum install nginx -y
  2. 开放防火墙端口(确保 80 或 443 端口可被公网访问):

    • 如果是 Ubuntu (ufw):
      sudo ufw allow 'Nginx Full'
      sudo ufw reload
    • 如果是 CentOS (firewalld):
      sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
      sudo firewall-cmd --reload
    • 注意:如果是云厂商控制台(如阿里云安全组),还需要在网页控制台中放行 TCP 80 端口。

第二步:上传 dist 文件

你有多种方法可以将本地的 dist 文件夹上传到服务器。

方法 A:使用 SSH/SFTP 工具(推荐,适合新手)

使用 FileZillaWinSCPVS Code 的 Remote-SSH 插件

  1. 连接服务器 IP。
  2. 将本地项目目录下的 dist 文件夹直接拖拽上传到服务器的 /var/www/html 目录下(或者你自定义的其他目录,如 /home/user/my-project)。

方法 B:使用 SCP 命令(适合命令行用户)

在本地电脑终端执行(将 your-server-ip 替换为实际 IP,username 替换为服务器用户名):

# 将整个 dist 文件夹复制到服务器
scp -r ./dist username@your-server-ip:/var/www/html/

第三步:配置 Nginx

上传完成后,需要告诉 Nginx 去哪里找这些文件。

  1. 创建配置文件(以默认路径为例):

    sudo nano /etc/nginx/sites-available/my-app
  2. 写入以下配置内容
    假设你的 dist 文件已放在 /var/www/html/dist

    server {
        listen 80;
        server_name your-domain.com; # 或者填写你的服务器 IP
    
        root /var/www/html/dist;     # 指向 dist 文件夹的绝对路径
        index index.html;            # 默认首页文件名
    
        # 关键配置:处理 Vue/React 路由刷新 404 问题
        location / {
            try_files $uri $uri/ /index.html;
        }
    
        # 可选:缓存静态资源(js/css/img)
        location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
        }
    }
  3. 启用配置并重启 Nginx

    • 如果是 Ubuntu,通常需要链接到 sites-enabled:
      sudo ln -s /etc/nginx/sites-available/my-app /etc/nginx/sites-enabled/
    • 检查配置语法是否正确:
      sudo nginx -t
    • 如果显示 syntax is ok,则重启服务:
      sudo systemctl restart nginx

第四步:验证与访问

  1. 测试访问
    在浏览器中访问 http://你的服务器IPhttp://你的域名

    • 如果你看到项目页面,说明成功。
    • 如果你看到 "Welcome to Nginx!" 默认页,说明 root 路径配置错误或文件未上传成功。
  2. 解决 Vue/React 路由 404 问题
    如果在开发模式下运行正常,但部署后点击侧边栏菜单出现 404,这是因为 SPA(单页应用)的路由是前端控制的,而 Nginx 默认会去服务器找对应的物理文件。

    • 解决方案:确保上面的 Nginx 配置中包含 try_files $uri $uri/ /index.html;。这行代码的意思是:如果找不到文件,就返回 index.html,让前端路由接管。

常见问题排查

问题现象 可能原因 解决方法
502 Bad Gateway Nginx 启动失败或端口冲突 运行 sudo systemctl status nginx 查看日志
403 Forbidden 文件权限不足 运行 sudo chown -R www-data:www-data /var/www/html/dist (用户名为 www-data)
刷新页面 404 缺少 try_files 配置 检查 Nginx 配置中的 location / 部分
图片/样式不加载 路径写死或跨域问题 检查 vite.config.jsvue.config.js 中的 base 路径是否配置正确

进阶建议:HTTPS 证书

为了安全和 SEO,正式上线时建议配置 HTTPS。可以使用 Certbot 免费申请 Let’s Encrypt 证书:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com

这将自动配置 Nginx 并重定向 HTTP 到 HTTPS。

云服务器