直接给index.html加读权限(chmod +r)通常够用,但打不开主因常是父目录缺执行权(x)或file://协议被浏览器安全策略拦截;HTML文件只需644/604权限,禁用755/777以防Web服务器拒绝;目录x权限决定路径可遍历性,需逐级检查并补x;file://下白屏优先用http-server验证是否协议问题。
直接给 index.html 加读权限(chmod +r)通常就够用了,但真正打不开往往不是文件没读权,而是父目录缺执行权(x),或者浏览器用 file:// 协议时被安全策略拦了。
HTML 文件不需要执行权限(x),只读就行。设成 777 不仅多余,还可能触发 Web 服务器(如 Apache/Nginx)的拒绝策略——某些配置会明确禁止可写或可执行的静态资源。
chmod 644 index.html:属主可读写,属组和其他人只读(最常用、最安全)chmod 604 index.html:仅属主可读写,其他人只读(适合多人协作环境)chmod 755 index.html:多了执行位,Apache 可能报 Forbidden,尤其在严格模式下chmod 777:等同于向所有人开放写权限,Web 服务器常直接拒载用 file:///path/to/index.html 打开时,浏览器需要「进入」每一级目录才能定位到文件。对目录来说,x = 「可遍历」,没有它,哪怕 index.html 权限再高也打不开。
ls -ld /var /var/www /var/www/html
drw-r--r--(缺 x),运行:chmod +x /var/www/html
+x 是加到目录上,不是 HTML 文件上;且只需加到「路径中缺失 x 的那一层」www-data),先确认:ls -l /var/www/html,必要时用 chown $USER:$USER /var/www/html
现代浏览器对 file:// 有诸多限制:无法加载本地 JS/CSS(CORS)、不支持相对路径跳转、静默失败不报错。这不是权限问题,是协议设计使然。
立即学习“前端免费学习笔记(深入)”;
npx http-server /var/www/html -p 8000
http://localhost:8000/index.html —— 如果能打开,说明权限配置其实没问题file:// 和权限快得多file://,确保路径是绝对路径(file:///home/user/project/index.html),且中间每级目录都有 x
最容易被忽略的是:你以为改了 index.html 权限就完事了,结果卡在 /var/www 这一级目录没 x,或者浏览器根本没报错,只是白屏——这时候先起个 http-server,几秒就能分清是权限还是协议问题。