HTML项目部署需确保Web服务运行、文件放对路径(如/var/www/html)、权限正确(644/755),并配置try_files支持前端路由,HTTPS和域名需同步处理DNS与证书续期。

直接放上去不等于能访问——关键在“谁读它”“从哪读”“怎么被别人找到”。只要 Web 服务(nginx 或 apache2)没运行、文件没放对路径、权限没设好,浏览器打开就是 403 或 404。
确认服务器上有没有运行 Web 服务
很多人传完文件就开浏览器输 IP,结果白屏或连接被拒绝。先 SSH 登进去检查:
- 运行
systemctl status nginx或systemctl status apache2,看是否显示active (running) - 如果没装,Ubuntu/Debian 执行
sudo apt install nginx;CentOS/RHEL 用sudo yum install nginx(或dnf) - 启动后别忘了开放端口:
sudo ufw allow 'Nginx Full'(Ubuntu)或检查firewalld是否放行 80/443
把 HTML 文件放到 Web 服务能读到的目录里
不是随便建个 /home/user/my-site 就行。Web 进程(如 www-data 用户)默认只读特定路径:
- Nginx 默认根目录是
/var/www/html/(Ubuntu),Apache 也是这个路径(部分 CentOS 是/var/www) - 上传命令推荐用
scp:scp -r ./dist/* user@server:/var/www/html/(注意末尾斜杠表示“内容”) - 如果提示
Permission denied,说明你没权限直接写系统目录:先传到家目录(scp index.html user@server:/tmp/),再用sudo cp /tmp/index.html /var/www/html/ - 上传后检查文件权限:
ls -l /var/www/html/,确保www-data能读,chmod 644 index.html就够了,别用777
上传后打不开?优先查这三件事
90% 的问题不是代码错,而是服务器配置卡点:
立即学习“前端免费学习笔记(深入)”;
-
403 Forbidden:多半是目录没开执行权限(chmod 755 /var/www/html),或index.html不在根目录,或 Nginx 配置里漏了index index.html; -
404 Not Found:浏览器地址栏输的是http://ip/about,但你只传了index.html,没配前端路由;或者路径写错,比如实际传到了/var/www/myapp却没改 Nginx 的root - 页面空白 + 控制台报
net::ERR_ABORTED:静态资源路径写死成/css/style.css,但站点部署在子路径(如https://example.com/myapp/);改用相对路径(css/style.css)或构建时设base: "./"
别跳过域名和 HTTPS 这两步
用 IP 访问只是临时验证,真上线必须走域名 + HTTPS:
- DNS 解析要生效:刚把
A记录指向服务器 IP,ping yourdomain.com可能还缓存着旧地址;用curl -I http://your-server-ip绕过 DNS 直接测服务 - HTTPS 别手动配:用
certbot --nginx -d your-domain.com一键搞定,但得确保域名解析已生效且 Nginx 配置里有对应server_name - 证书 90 天过期,加 cron 自动续期:
0 12 * * 1 /usr/bin/certbot renew --quiet --post-hook "/usr/sbin/nginx -s reload"
最易被忽略的是:前端路由(history 模式)必须配 try_files $uri $uri/ /index.html;,否则刷新子页面直接 404;还有构建产物里的资源路径和 Nginx 的 root 或 alias 必须对齐,差一个斜杠都可能加载失败。



















