CSS加载失败主因是alias路径末尾斜杠不匹配:location /static/必须配alias /var/www/assets/,否则发生路径粘连导致404;还需排查正则location干扰、权限不足及配置未生效等问题。
样式表(CSS)加载失败,通常不是文件本身丢了,而是 Nginx 没有把请求正确映射到磁盘上的 CSS 文件路径。用 alias 配置虚拟目录时,这类问题高频出现,核心在于路径拼接逻辑被误解,或被其它 location 规则意外覆盖。
alias 后的路径必须以 / 结尾(除非它指向单个具体文件),否则 Nginx 会把 location 匹配部分“粘”在 alias 路径末尾,造成错位。
location /static { alias /var/www/assets; } → 请求 /static/css/app.css 实际查找 /var/www/assetss/css/app.css(assets 和 css 被连在一起)location /static/ { alias /var/www/assets/; } → 请求 /static/css/app.css 正确映射到 /var/www/assets/css/app.css
location 的匹配路径(如 /static/)和 alias 路径(如 /var/www/assets/)末尾斜杠必须一致如果配置中存在类似 location ~ .(js|css|png)$ 这类正则规则,且它出现在 alias 块之前,Nginx 会优先匹配正则并执行其中的 root 或其它指令,从而覆盖你为 /static/ 设置的 alias。
^~ 或限制 URI 前缀)root + 精确 location,避免与 alias 冲突路径对了,不代表就能读取;配置改了,不代表已加载。
www-data 或 nginx)对 alias 目录及其所有父目录有 执行(x)和读取(r)权限
/Static/,但 location 写成 /static/ 或 alias 指向 /Var/WWW/Assets/,都会 404nginx -t 检查语法,再用 nginx -T 输出当前实际生效的完整配置,确认你修改的 server 块确实被加载nginx -s reload)或重启,避免旧进程仍在运行别靠猜,让 Nginx 自己告诉你它想找哪儿。
return 200 "real path: $request_filename";