修改 Nginx root 指令需指定绝对路径(如 root /opt/my-site/;),避免相对路径;location 块中优先用 alias 替代 root 防止路径拼接错误;同步检查 index 文件存在性、权限(目录755/文件644)、无中文空格、SELinux 状态,并通过 nginx -t、curl 和错误日志验证。
改 Nginx 的 root 指令,核心是让 URI 路径能准确映射到你新放文件的物理目录,同时兼顾权限、路径规范和 location 上下文影响。
先确认 HTML、CSS、JS 等文件实际存放在服务器哪个绝对路径,比如:/opt/my-site/ 或 /var/www/frontend/dist/。然后在 server 块中把 root 改成这个完整路径:
root /opt/my-site;(末尾斜杠可加可不加,语义清晰建议加)root ./my-site),Nginx 不解析当前工作目录root "D:/my-site/";
如果配置里用了 location,直接改外层 root 可能不够,尤其当请求路径带前缀时:
location / 中改 root,就影响整个站点根路径location /api/ 或 location /static/ 这类带路径前缀的块里,root 会拼接路径 —— 比如 root /data; + location /img/ → 实际找 /data/img/xxx.png
alias:它直接替换匹配部分,避免多层拼接出错只改 root 不够,还得同步处理依赖项:
index index.html; 对应的文件真在新目录里存在www-data 或 nginx)得有读取权限 —— 目录 755,HTML 文件 644setenforce 0(仅调试)改完别急 reload,按顺序确认:
sudo nginx -t 检查语法是否通过curl -I http://localhost/ 看返回状态码:200 是成功,403 是权限问题,404 是路径没对上tail -f /var/log/nginx/error.log,里面会写明“Permission denied”或“No such file or directory”root 下的实际路径