排查思路:从简到繁,从外到内
核心原则:先检查图片本身,再检查程序调用,最后检查服务器环境。

(图片来源网络,侵删)
第一步:检查图片源文件(最常见的原因)
这是最容易忽略但最常见的问题,图片不显示,首先得确认图片本身是否存在。
-
检查图片路径是否正确:
- 登录你的网站后台,找到首页模板文件(通常是
index.htm)。 - 找到调用图片的代码,它可能长这样:
<img src="{dede:field name='litpic'/}" alt="{dede:field name='title'/}" />或者
<img src="[field:litpic/]" alt="[field:title/]" />
- 在浏览器中,右键点击不显示的图片,选择“检查”或“Inspect”。
- 在弹出的开发者工具中,查看图片的
src属性,你会看到一个具体的网址,https://www.yoursite.com/uploads/allimg/240101/1-2401011F5300-50.jpg。 - 复制这个完整的网址,直接在浏览器的新标签页中打开。
- 如果能正常打开图片:说明图片文件本身是存在的,问题出在模板调用或标签上,请看第二步。
- 如果打不开,显示404错误或图标:说明图片文件丢失了,你需要去服务器上检查对应的路径下是否存在这个文件,文件可能被误删、移动,或者上传时失败了。
- 登录你的网站后台,找到首页模板文件(通常是
-
检查图片服务器权限:
(图片来源网络,侵删)- 图片文件可能存在,但Web服务器(如Apache、Nginx)没有读取它的权限。
- 登录你的服务器(通过FTP或SSH),找到图片所在的目录(
/uploads/)。 - 确保这个目录及其内部文件的权限设置正确,目录权限设置为
755,文件权限设置为644,如果权限过低(如000),服务器就无法访问。
第二步:检查DedeCMS模板和标签
如果图片文件本身没问题,那问题就出在调用图片的代码上。
-
检查模板标签是否正确:
- 确保你在模板中使用的标签语法是正确的,DedeCMS有不同的版本,标签语法略有差异。
- V5.7及以后版本:推荐使用
{dede:}格式。 - 旧版本:可能使用
[field:]格式。
- V5.7及以后版本:推荐使用
- 确保标签没有拼写错误。
litpic不要写成litpicc。
- 确保你在模板中使用的标签语法是正确的,DedeCMS有不同的版本,标签语法略有差异。
-
检查缩略图是否生成:
- 很多首页图片调用的是文章的“缩略图”(
litpic),如果文章本身没有上传缩略图,litpic字段就是空的,自然不会显示图片。 - 解决方法:
- 进入后台“内容管理 -> 文章管理”,检查相关文章是否设置了缩略图,如果没有,点击文章进行编辑,上传并设置缩略图。
- 或者,修改模板,增加一个默认图片,当
litpic为空时,显示一张默认图。 修改模板代码为:<img src="{dede:field name='litpic' function='(@me=="" ? "/images/default.jpg" : @me)'/}" alt="{dede:field name='title'/}" />(注意:
/images/default.jpg需要替换成你网站中实际存在的默认图片路径。)
(图片来源网络,侵删)
- 很多首页图片调用的是文章的“缩略图”(
-
检查首页内容是否来自自定义页面:
- 有些首页内容是通过“核心 -> 频道管理 -> 内容目录”中的“自定义页面”生成的,如果图片是直接写在自定义页面编辑器里的,而不是通过模板标签调用的,那问题可能出在编辑器本身。
- 解决方法:
- 切换到“代码模式”(HTML源码模式)查看图片代码,看路径是否完整。
- 尝试重新上传一次图片。
- 检查编辑器上传的图片是否保存在了正确的目录(通常是
/uploads/)。
第三步:检查DedeCMS系统和服务器配置
如果以上都正常,那可能是更深层次的问题。
-
检查DedeCMS缓存:
- DedeCMS为了加快速度,会生成静态页面和缓存,有时候缓存文件损坏了,就会导致各种奇怪的问题。
- 解决方法:
- 登录后台,进入“系统 -> 数据库备份/恢复 -> 数据库恢复”。
- 在右侧找到“更新系统缓存”,点击执行,这会刷新系统的缓存文件。
-
检查服务器伪静态规则:
- 如果你开启了伪静态(URL重写),规则文件(
.htaccessfor Apache,nginx.conffor Nginx)配置错误可能会导致图片路径解析错误。 - 解决方法:
- 暂时关闭伪静态功能,看看图片是否能正常显示,如果能,说明就是伪静态规则的问题。
- 检查你的伪静态规则文件,确保它没有错误地重写图片等静态资源的路径,DedeCMS官方提供的规则文件通常是没问题的,可以检查一下是否被修改过。
- 如果你开启了伪静态(URL重写),规则文件(
-
检查PHP文件上传限制:
- 如果图片是最近才无法显示的,可能是服务器修改了PHP的上传配置。
- 解决方法:
- 创建一个
phpinfo.php文件,内容为<?php phpinfo(); ?>,上传到网站根目录访问。 - 在页面中搜索
upload_max_filesize和post_max_size,确保它们足够大(32M)。 - 如果值太小,你需要修改服务器的
php.ini配置文件,然后重启PHP服务。
- 创建一个
第四步:检查浏览器和CDN问题
-
浏览器缓存问题:
- 有时是浏览器缓存了旧的错误页面。
- 解决方法:按
Ctrl + F5强制刷新页面,或者使用浏览器的“无痕/隐私模式”访问。
-
CDN缓存问题:
- 如果你使用了CDN(内容分发网络,如阿里云CDN、Cloudflare),图片可能已经被CDN缓存,但源站的图片已经更新或删除了。
- 解决方法:登录你的CDN服务商后台,找到对应的域名,对图片所在的目录(如
/uploads/)执行“刷新缓存”或“清除缓存”操作。
快速排查清单
如果你觉得步骤太多,可以按这个清单快速试一遍:
- 右键检查图片 -> 复制
src链接 -> 浏览器新窗口打开,如果失败,是图片文件问题(丢失/权限)。 - 如果链接能打开图片,去后台检查对应文章的缩略图是否设置了。
- 如果缩略图也设置了,去后台更新系统缓存。
- 如果还不行,尝试强制刷新浏览器 (
Ctrl+F5)。 - 如果使用了CDN,去CDN后台刷新缓存。
- 如果以上都无效,考虑暂时关闭伪静态,看是否恢复正常。
按照这个流程,90%以上的首页图片不显示问题都能得到解决,如果问题依然存在,请提供更多信息,比如你的DedeCMS版本、服务器环境(PHP版本)、以及不显示图片的网页链接,这样我可以给出更精确的指导。
