今天刷网站的时候,我自己就碰到了部分网站图片不显示的情况,一开始以为是网速慢,刷了半分钟还是不行,就开始翻之前攒的排查笔记,发现好多坑都是大家常踩的。说起来这个问题真的不算大,但就是折腾人,有时候找半天找不到原因,能把人急死。今天就把我总结的几个排查点分享出来,碰到问题顺着捋,大概率能解决。

最常见的就是图片路径错了。比如新手建站的时候,喜欢把图片存在本地电脑桌面,然后做网页的时候直接引用本地路径,结果上传到服务器之后,路径根本不对,图片当然显示不出来。我当年刚开始学做网页的时候就犯过这个错,本地打开全正常,传到服务器一张图都没显示,尴尬了快一下午才搞明白。还有就是网站迁移的时候,原来的图片路径是绝对路径,换了服务器之后域名变了,原来的路径就失效了,这个时候要么批量改路径,要么重新上传图片。另外还有一个容易忽略的点,就是文件名大小写,Linux服务器是严格区分大小写的,比如你图片存的是Top.jpg,代码里写的是top.jpg,那服务器就找不到这个图片,直接就404不显示了,这种情况我帮客户处理网站的时候碰到过好多次,真的防不胜防。
上传图片的时候,如果网络不稳定,很容易出现只传了一半的情况,这个时候图片文件本身就是损坏的,当然打不开。你可以直接登录服务器后台,找到对应的图片文件,直接打开试试,如果打不开,那肯定就是文件坏了,重新传一遍就好。还有一种情况,就是图片体积太大,比如你把相机原图直接传上去了,一张图十几兆,服务器带宽不够的话,加载个几十秒出不来,就直接超时不显示了。尤其是用小带宽虚拟主机的朋友,特别容易碰到这个问题。解决方法也简单,要么用图片压缩工具把图片压小,要么升级一下服务器带宽,具体带宽够不够以服务商说明为准。
这个问题多出现在自己配置服务器的朋友身上。比如你上传图片之后,把图片所在文件夹的权限设置成了700,意思就是只有管理员能读取,访客访问的时候根本拿不到图片,自然就显示不出来了。一般来说,网站文件和文件夹的权限设置成755就可以正常访问了,如果不确定,可以去查一下对应服务器系统的权限设置规范,或者直接找服务商技术帮你调。还有一种情况,就是你改了服务器的rewrite规则,或者加了防火墙规则,不小心把图片给拦截了,这种情况我之前碰到过一个朋友,他为了阻止爬虫抓取图片,改了规则,结果把正常访客的访问也给拦了,整个网站所有图片都不显示,折腾了一天才找到问题出在哪。所以改规则的时候一定要小心,改完记得测试一下,别光顾着达到目的忘了测试。
现在很多网站都用CDN加速,如果CDN配置错了,或者缓存没更新,也会导致图片不显示。比如你换了服务器,更新了图片地址,但是CDN缓存还是旧的,没刷新,那访客从CDN拿图片拿到的还是旧地址,当然显示不出来,这个时候去CDN后台手动刷新一下缓存就好了。还有一个常见的问题就是混合内容错误,你的网站升级成了https,但是图片还是用的http地址,现在主流浏览器都会自动拦截http的不安全内容,所以图片就不显示了。解决这个问题也很简单,要么把图片地址都改成https,要么在网站配置里开一个自动跳转,把http的请求自动转到https,大部分建站程序都有一键开启这个功能,找找就能看到。要是你找不到,找建站程序的官方文档一看就懂了。
其实大部分时候,部分网站图片不显示都是这些小问题导致的,顺着上面几个步骤一步步排查,基本上都能找到原因解决掉。要是排查完这几个点还不行,那可能就是比较复杂的配置问题了,这个时候别硬扛,找专业的技术人员帮你看看,省得浪费时间耽误事儿。另外提醒大家一句,平时一定要做好网站备份,就算出了问题,也能快速恢复,不会影响访客访问,也不会给自己添太多麻烦。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!