首页 帮助中心 香港大带宽服务器 nginx部署后css或图片样式加载不出来怎么办
nginx部署后css或图片样式加载不出来怎么办
时间 : 2024-07-19 16:10:27 编辑 : 华纳云 阅读量 : 184

使用nginx部署静态网站,如果使用css、JavaScript、图片等资源加载出错的常见原因有文件路径错误、权限问题、配置错误、浏览器缓存等,解决方案步骤如下!

先检查文件的路径,确保CSS、JS和图片在HTML文件中路径文件是正确的,当静态文件在/var/www/your_site/ 目录下,检查HTML文件引用的静态资源路径,如:

<link rel="stylesheet" href="/css/styles.css">

<script src="/js/scripts.js"></script>

<img src="/images/logo.png" alt="Logo">

确保/css/styles.css、/js/scripts.js 和 /images/logo.png 存在于服务器上并且路径正确。检查文件权限,确保nginx有访问静态文件的权限,可以使用以下命令进行设置适当的权限和所有权。

sudo chown -R www-data:www-data /var/www/your_site

sudo find /var/www/your_site -type d -exec chmod 755 {} \;

sudo find /var/www/your_site -type f -exec chmod 644 {} \;

其中www-data 是默认的 Nginx 用户。如果你使用其他用户,请相应地更改 www-data。

检查 Nginx配置是否正确指向静态目录,如:

server {

    listen 80;

    server_name your_domain www.your_domain;

 

    root /var/www/your_site;

    index index.html index.htm;

 

    location / {

        try_files $uri $uri/ =404;

    }

 

    # 处理静态文件

    location ~* \.(jpg|jpeg|gif|png|css|js|ico|svg)$ {

        expires max;

        log_not_found off;

    }

}

其中,try_files $uri $uri/ =404; 确保 Nginx 尝试访问请求的文件,如果文件不存在,则返回 404 错误。

location ~* \.(jpg|jpeg|gif|png|css|js|ico|svg)$ 处理静态文件的缓存,并将其与静态文件请求匹配。

可以清理浏览器的换成,有可能浏览器会缓存旧版本文件,导致新版本的文件不加载,可以清理浏览器换成和使用无痕浏览模式访问页面。

检查nginx的错误日志和访问日志,帮助找出问题所在,默认错误日志位置在/var/log/nginx/error.log,访问日志位于 /var/log/nginx/access.log。

sudo tail -f /var/log/nginx/error.log

sudo tail -f /var/log/nginx/access.log

如果存在URL重写规则检查URL的重写规则,必须确保其不会干扰静态文件访问。如检查有无任何不必要重写规则会导致静态资源请求失败。

server {

    listen 80;

    server_name your_domain www.your_domain;

 

    root /var/www/your_site;

    index index.html index.htm;

 

    location / {

        try_files $uri $uri/ =404;

    }

 

    # 处理静态文件

    location ~* \.(jpg|jpeg|gif|png|css|js|ico|svg)$ {

        expires max;

        log_not_found off;

    }

 

    # 处理反向代理(如果有)

    location /api/ {

        proxy_pass http://backend_server/;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}

以上步骤,可以帮助您处理 Nginx 部署后静态资源无法加载的问题。如果您使用中问题依然存在,可以提供更多具体的信息,华纳云技术支持会进一步帮助诊断。

华纳云 推荐文章
Linux 系统中安装 Gparted Docker目录挂载相关总结 ubuntu系统中xrdp的安装步骤 tomcat后台部署war包拒绝访问解决办法 linux中查看java路径最简单直接的方法 怎么解决服务器的503状态码问题? 如何解决Tomcat连接池占满的问题? 使用SSH远程连接轻量应用服务器的方法 怎么通过crt远程连接ubuntu Ubuntu上安装pip遇到问题怎么解决?
客服咨询
7*24小时技术支持
技术支持
渠道支持