昨天在站长群碰到一个刚做完网站的朋友,说刚上线就发现网站显示不了图片,急得满头汗,问了半天才发现是他传图片的时候把路径写错了。其实这种事儿我碰到过太多了,大多都是不起眼的小问题,顺着思路一步步排查很快就能找到原因,真不用太慌。我整理了几个我碰到最多的情况,大家碰到问题可以对着一个个查。

排第一的肯定是图片路径写错了,这真的是新手最容易踩的坑。很多人本地做网站的时候,图片路径写的是自己电脑上的本地路径,比如C:\Users\XXX\Desktop\img\xxx.jpg,上传到服务器之后,服务器哪找得到你C盘的文件啊,自然就显示不出来了。还有一个坑就是大小写,Linux服务器是严格区分文件名大小写的,但是我们本地用Windows的时候不区分,所以你本地测试的时候一切正常,上传到服务器就找不到图片了。我刚建站那会就踩过这个坑,一张叫bg.jpg的图片,我写成了BG.jpg,本地好好的,上线就是显示不了,折腾了快一个小时才发现这个问题,说出来都是泪啊。排第二的就是图片本身损坏了,上传的时候网络不稳定,传了一半断了,结果图片文件就是个不完整的破损文件,浏览器当然解析不出来。这个排查也简单,你直接在浏览器地址栏输入图片的完整地址,看看能不能下载打开,要是下载下来打不开,那肯定就是图片坏了,重新传一次就搞定。
有时候你网站的图片已经更新了,或者你刚改了图片路径,但是浏览器还存着之前的旧缓存,就会显示不出来或者显示那个破损的小图标。这个怎么排查?太简单了,换个浏览器打开试试,或者开浏览器的隐私/无痕模式打开,要是无痕模式能正常显示,那肯定就是缓存的问题了。解决也很简单,清一下浏览器缓存就好了,或者按Ctrl+F5强制刷新一下页面,大部分情况就能解决。我碰到过好多次用户说图片显示不了,结果就是缓存搞的鬼,白白担心半天。
很多新手买了服务器之后,自己传图片,不小心把存放图片的文件夹权限或者图片本身的权限设错了,web服务器没有读取权限,自然就返回错误,显示不了图片。一般来说Linux服务器下面,文件夹权限要设成755,图片文件设成644就好了,要是你不小心设成了700或者其他只有管理员能读的权限,服务器就不让读,图片就显示不出来。还有一种情况就是你配置了重定向规则或者装了安全防护插件,不小心把图片路径给拦截了。我之前帮一个客户排查问题,他装了个防爬虫的安全插件,结果规则写错了,把所有img后缀的请求都给拦了,整个网站的图片全显示不了,找了半天原因才发现是这个问题。还有防盗链配置错了也会出这个问题,很多网站开了防盗链防止别人盗图,结果不小心把自己的域名给写到禁止列表里了,那自己网站也显示不了图片,检查一下规则改对就好了。
如果你用了CDN加速服务,或者刚改了域名解析,那大概率就是缓存没更新导致的。改了域名解析之后,DNS缓存要等TTL过期才会更新,一般TTL是10分钟到24小时不等,所以会有部分用户能看到,部分用户看不到的情况。要是你用了CDN,更新了源站的图片,CDN节点还存着旧的破损图片,也会导致显示不了。这种情况也很好解决,去CDN后台手动刷新一下图片对应的缓存,或者直接刷新整个CDN缓存,等个几分钟就好了。DNS的话实在等不及,可以换个公共DNS比如114.114.114.114或者阿里的223.5.5.5试试,就能立刻看到最新的解析结果了。还有一种比较少见的情况,就是你图片的体积太大,用户那边网络不好,加载半天加载不出来,就显示不出来了。这种情况你把图片压缩一下,体积弄小一点就好了,现在手机拍的照片动不动就好几M,传到网站不压缩肯定加载慢,甚至加载不出来。
其实说了这么多,你会发现大部分网站显示不了图片都是很小的问题,根本不用急着找技术人员花钱修,顺着上面说的这几点一步步排查,八九不离十就能找到问题所在。要是排查了一圈还是找不到问题,那就去问你的服务器或者建站服务商,具体问题以服务商或官方页面说明为准就好了。大部分时候都是小疏忽导致的,仔细点很快就能搞定。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!