You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.04 LTS服务器NGINX无法加载CSS、图片等媒体文件

排查Nginx静态资源加载失败的常见原因及解决方法

我之前在Ubuntu服务器上配置Nginx反向代理时也碰到过一模一样的静态资源加载问题,结合16.04 LTS的环境,给你几个实用的排查和解决方向:

  • 检查静态资源路径配置是否准确
    先确认Nginx配置里的root或alias指令是否指向了应用静态资源的真实存放目录。比如你的应用静态文件存在/var/www/myapp/static下,配置应该类似:

    location /static/ {
        root /var/www/myapp;
        # 或者用 alias /var/www/myapp/static/; 注意两种指令的路径末尾斜杠差异
    }
    

    路径写错的话,Nginx找不到文件,直接会返回404,导致资源加载失败。

  • 验证静态资源的文件权限
    Ubuntu下Nginx默认以www-data用户运行,必须确保静态资源目录和文件允许该用户读取:

    # 递归设置目录权限为755,保证可读可执行
    sudo chmod -R 755 /var/www/myapp/static
    # 必要时递归设置文件所有者为www-data
    sudo chown -R www-data:www-data /var/www/myapp/static
    

    权限不足的话,Nginx无法读取文件,浏览器会收到403错误。

  • 调整location规则的匹配顺序
    如果你的应用是通过proxy_pass反向代理到后端服务,静态资源的location规则必须优先于代理规则,避免被错误转发到后端。示例配置如下:

    server {
        listen 80;
        server_name your-domain.com;
    
        # 先匹配静态资源请求
        location /static/ {
            root /var/www/myapp;
            expires 30d; # 可选:设置静态资源缓存时间
        }
    
        # 其余请求代理到后端应用
        location / {
            proxy_pass http://localhost:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    

    要是静态资源的location放在代理规则后面,会被优先匹配到代理逻辑,导致后端服务处理静态资源请求出错。

  • 检查浏览器请求的资源路径
    打开浏览器开发者工具(F12)的「网络」标签,查看静态资源的请求URL是否正确,是否返回404/403状态码。有时候前端页面用了相对路径(比如./css/style.css),反向代理后URL前缀变化会导致路径失效,这时候需要调整前端的资源引用路径,或者在Nginx里配置对应的路径重写规则。

  • 测试配置并重启Nginx
    每次修改配置后,一定要先验证配置合法性,再重启服务:

    sudo nginx -t
    sudo systemctl restart nginx
    

    如果配置有语法错误,Nginx会拒绝重启,根据提示修正即可。


内容的提问来源于stack exchange,提问作者chen20032

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:07:13