如何在服务器上发布html5网站

2次阅读

服务器需运行http服务(如nginx/apache)并开放80/443端口,html5文件须置于web根目录(如/var/www/html),配置正确权限与路由重写规则,使用相对路径和https避免混合内容,修改后务必重载服务。

如何在服务器上发布html5网站

确认服务器有没有 HTTP 服务

没有 Web 服务,放再好的 html5 文件也打不开。常见情况是买了云服务器但只装了系统,没装 nginxapache,甚至没开防火墙端口。

实操建议:

立即学习前端免费学习笔记(深入)”;

  • ps aux | grep nginxsystemctl status apache2 看服务是否在运行
  • 没装就装一个,推荐轻量的 nginxsudo apt install nginxubuntu/debian)或 sudo yum install nginxcentos
  • 检查 80 端口是否监听:ss -tuln | grep :80,没输出说明服务没起来或端口被占
  • 云厂商(如阿里云、腾讯云)还要去控制台安全组里放行 80 和 443 端口

把 HTML5 文件放到正确路径

nginx 默认网站根目录是 /var/www/htmlapache 一般是 /var/www/html/var/www/your-site。放错位置,浏览器访问会 404。

实操建议:

立即学习前端免费学习笔记(深入)”;

  • 别直接往 /root/home/username 里扔文件,HTTP 服务默认不读这些路径
  • sudo cp -r ./my-website/* /var/www/html/ 把本地构建好的静态文件拷过去
  • 注意权限:确保 www-data(Ubuntu)或 apache(CentOS)用户能读取文件,执行 sudo chown -R www-data:www-data /var/www/html
  • 如果用了 index.html 以外的入口(比如 app.html),得改 nginx.conf 里的 index 指令

处理 HTML5 路由(history.pushState)刷新 404

用 Vue router、React Router 或原生 history.pushState 做单页应用(SPA)时,直接访问 /about 会 404——因为服务器找不到这个物理路径。

实操建议:

立即学习前端免费学习笔记(深入)”;

  • nginx,在 server 块里加这段配置:
    location / {<br>  try_files $uri $uri/ /index.html;<br>}
  • apache,确保 .htaccess 在根目录且启用 mod_rewrite,内容为:
    RewriteEngine On<br>RewriteBase /<br>RewriteRule ^index.html$ - [L]<br>RewriteCond %{REQUEST_FILENAME} !-f<br>RewriteCond %{REQUEST_FILENAME} !-d<br>RewriteRule . /index.html [L]
  • 别漏掉 try_files 最后那个 /index.html,少斜杠或写成 index.html 都会失效

HTTPS 和资源路径别踩坑

本地双击打开 index.html 能跑,一上服务器就报 Mixed Content 或资源 404,大概率是路径写死了。

实操建议:

立即学习前端免费学习笔记(深入)”;

  • 所有 CSS、js、图片路径用相对路径,比如 ./css/style.css,别用 file:/// 或绝对本地路径
  • 避免硬编码 http://,尤其当开了 HTTPS 后,http://api.example.com 会被浏览器拦截。统一用协议相对地址://api.example.com,或更推荐全用 https://
  • 检查浏览器开发者工具的 consoleNetwork 标签页,看具体哪个请求失败,状态码是不是 404blocked:mixed-content
  • 上线前清一次浏览器缓存,或者用无痕窗口测试,避免旧缓存掩盖路径问题

最常卡住的地方不是技术多难,而是查半天发现 nginx 没重启、index.html 权限不对、或者路径里多了一个点。每次改完配置,记得 sudo nginx -t && sudo systemctl reload nginx,别只改不重载。

text=ZqhQzanResources