Laravel项目CSS加载失败主因是public下静态文件权限设为600/640且属主非www,需分步修复:①chown -R www:www public;②find public -type f -exec chmod 644 {} \;;③chmod 644 public/index.php;最后用curl或sudo -u www cat验证可读性。

部署Laravel项目后,CSS文件加载失败、浏览器控制台报403或404错误,不是前端路径写错了,而是public目录下CSS等静态资源文件权限被误设为600或640,导致Nginx/PHP-FPM无法读取——此时chmod命令必须精准作用于文件而非目录,且不能统一套用755。
确认CSS文件当前权限是否异常
进入项目public目录,执行:
ls -la css/app.css
若输出权限位显示为-rw-------(600)或-rw-r-----(640),而第三列所有者不是www,第四列所属组也不是www,就证实是权限阻断了读取。
注意:public目录本身必须是755,但里面的.css/.js/.png等文件【绝不能设为755】,否则可能触发PHP安全机制拦截或暴露可执行风险。
分类型修复public下静态文件权限
第一步:先统一所有者为www用户组
chown -R www:www /www/wwwroot/your_project/public
立即学习“前端免费学习笔记(深入)”;
第二步:仅对public下所有常规文件设为644(含.css/.js/.jpg/.svg等)
find /www/wwwroot/your_project/public -type f -exec chmod 644 {} \;
第三步:单独放开public下的可执行脚本(如index.php)
chmod 644 /www/wwwroot/your_project/public/index.php
这一步不能省——index.php需被Web服务器读取并执行,644已足够;设成755反而可能在某些PHP配置下触发open_basedir限制。
快速验证CSS是否可读
方法一:用curl模拟Nginx请求
curl -I http://your-domain.com/css/app.css
返回HTTP/1.1 200 OK即表示权限已通,若返回403则说明文件仍不可读。
方法二:直接检查Web服务器进程能否访问该文件
sudo -u www cat /www/wwwroot/your_project/public/css/app.css > /dev/null 2>&1 && echo "可读" || echo "拒绝读取"
这一步操作起来很简单,直接把cat命令粘贴执行就行。如果提示Permission denied,说明chown没生效或文件所在路径存在符号链接未同步权限。


















