下面我将从最常见到最罕见的顺序,为你详细梳理排查和解决方法。

(图片来源网络,侵删)
第一步:最常见的原因 —— 图片路径错误
这是导致图片不显示的“罪魁祸首”,DedeCMS有自己的一套路径规则,如果设置不当,前台就无法正确找到图片。
检查系统基本参数设置
这是最根本的设置,决定了网站所有资源的基准路径。
- 登录后台:进入
dede文件夹,登录后台管理。 - 进入设置:在左侧菜单栏找到 “系统” -> “系统基本参数”。
- 检查核心设置:
网站根目录:确保这个值是正确的,通常是 或你的网站安装目录(如/dedecms/)。不要以网站网址:确保是完整的http://或https://开头的域名,不要以附件目录:这是上传文件存放的目录,默认是/uploads/,确保这个目录存在并且有写入权限。附件目录名:通常和附件目录一致。
操作建议:检查这些参数后,点击“保存更改”,有时候仅仅是保存一下操作,就能解决一些路径缓存问题。
检查文章/栏目内容中的图片路径
你在编辑器里插入的图片,路径是否正确?

(图片来源网络,侵删)
-
绝对路径 vs. 相对路径:
- 相对路径:像
/uploads/images/2025/10/a.jpg这样的路径,它依赖于网站的根目录,如果你的网站根目录设置正确,这种路径通常是可行的。 - 绝对路径:像
http://www.yourdomain.com/uploads/images/2025/10/a.jpg这样的路径,无论网站怎么部署,都能直接访问。强烈推荐使用绝对路径,因为它最稳定,不容易出错。
- 相对路径:像
-
如何确保使用绝对路径?
- 手动修改:在编辑器里,将图片的
<img src="...">标签中的路径,手动改成完整的http://或https://开头的地址。 - 修改编辑器默认行为:一些版本的DedeCMS编辑器(如ckeditor)可以设置默认插入图片时使用绝对路径,这需要修改编辑器配置文件,对于新手来说比较复杂,手动修改更直接。
- 手动修改:在编辑器里,将图片的
检查“水印”或“远程图片本地化”功能
这两个功能可能会导致图片路径或文件名发生变化,从而找不到图片。
- 开启水印:如果开启了水印,但水印图片路径错误或生成失败,原图可能也无法正常显示。
- 检查路径:在 “系统” -> “图片水印设置” 中,确保水印图片的路径是正确的(
/watermark/water.png)。 - 检查权限:确保水印图片存放的目录(如
/watermark/)存在且有读取权限。
- 检查路径:在 “系统” -> “图片水印设置” 中,确保水印图片的路径是正确的(
- 开启远程图片本地化:此功能会下载外部网站的图片到你的服务器上,如果下载失败或权限问题,图片就会丢失。
- 临时关闭:可以尝试在后台关闭此功能,看看是否恢复正常。
第二步:服务器和权限问题
如果路径都正确,那很可能是服务器层面的原因。
检查图片上传目录权限
这是非常常见的隐藏问题,服务器上的目录需要有正确的读写权限,否则DedeCMS无法上传和读取图片。
- Linux服务器:
- 上传目录:
/uploads/及其所有子目录(如/uploads/allimg/,/uploads/images/等)的权限通常需要设置为755。 - 文件权限:上传的图片文件权限通常需要设置为
644。 - 如何修改:通过FTP工具(如FileZilla)右键点击目录或文件,选择“文件权限”,然后输入数字,或者通过SSH连接服务器,使用
chmod命令。# 设置目录权限 chmod -R 755 /uploads/ # 设置文件权限 (如果需要) find /uploads/ -type f -exec chmod 644 {} \;
- 上传目录:
- Windows服务器:
- 确保
IIS或Apache的运行账户(如IIS_IUSRS,SYSTEM)对uploads目录有“读取和执行”、“列出文件夹内容”、“读取”权限,并且有“写入”权限(用于上传)。
- 确保
检查 .htaccess 文件
如果你的网站使用了伪静态(URL重写),.htaccess 文件中的规则可能会错误地拦截了对图片目录的访问。
- 检查位置:在网站根目录(如
public_html或www)下找到.htaccess文件。 - 关键规则:确保文件中包含了允许访问图片目录的规则,通常会有类似这样的代码:
# 确保可以访问图片目录 RewriteCond %{REQUEST_URI} !^/uploads/ RewriteCond %{REQUEST_URI} !^/templets/ # ... 其他规则 ...如果没有,或者规则冲突,可能会导致图片404错误。
检查服务器安全软件
一些服务器安全软件(如云盾、安全狗、360网站卫士等)可能会误将图片上传或读取操作当作攻击,并拦截它们。
- 排查方法:临时在后台关闭这些安全软件,然后刷新页面看图片是否显示,如果恢复了,就是安全软件的问题。
- 解决方法:在安全软件的后台,将DedeCMS的图片目录(
/uploads/)和网站根目录加入“白名单”或“信任列表”。
第三步:DedeCMS自身问题
如果以上都正常,可能是程序本身的问题。
数据库中的图片路径错误
虽然你看到的内容里路径是对的,但数据库里存储的路径可能是错误的,或者被截断了。
- 检查数据库:登录你的数据库管理工具(如phpMyAdmin)。
- 定位数据:找到你的内容表(通常是
dede_addonarticle或dede_archives)。 - 查询字段:在
body或bodypic等字段中,查找你的图片路径,看看是否完整、正确,如果发现路径不完整(如缺少http://),可以尝试用SQL语句批量修正。
缓存问题
DedeCMS有很强的缓存机制,有时缓存没有及时更新,会导致页面显示旧内容(比如旧路径或不存在的图片)。
- 清理缓存:
- 进入后台 “系统” -> “缓存管理” -> “更新全部缓存”。
- 或者直接通过FTP删除
/data目录下的缓存文件(如cache_*)。注意:删除缓存后,网站首页可能需要重新生成才能正常显示。
模板文件问题
检查你使用的模板文件(.htm 文件),确保其中调用文章图片的标签(如 [field:picname/])是正确的,并且没有被模板本身的错误逻辑影响。
第四步:浏览器和网络问题
这是最容易被忽略,但有时也是原因的情况。
- 浏览器缓存:按
Ctrl + F5强制刷新浏览器,清除本地缓存。 - 网络代理/CDN:如果你使用了CDN(如阿里云CDN、Cloudflare),可能是CDN节点没有及时同步你的新图片,可以登录CDN后台,刷新对应的URL缓存。
- 防盗链:检查服务器是否开启了图片防盗链,如果开启了,但你的网站域名没有在允许列表中,图片就会显示失败(通常会显示一个防盗链的默认图片或空白)。
排查清单
当你遇到图片不显示的问题时,可以按照以下清单一步步检查:
- 【最优先】 检查后台 “系统基本参数” 中的
网站根目录和网站网址是否正确。 - 【最优先】 检查图片上传目录(
/uploads/)的权限是否为755。 - 层面】 检查文章内容里的图片路径,是否为绝对路径(
http://开头)。 - 【功能层面】 检查是否开启了水印或远程图片本地化功能,尝试关闭它们看是否恢复。
- 【服务器层面】 检查网站的
.htaccess文件是否有问题。 - 【服务器层面】 检查是否有安全软件(如安全狗)拦截了图片请求。
- 【程序层面】 在后台清理缓存,并尝试重新生成相关页面。
- 【浏览器层面】 强制刷新页面(
Ctrl + F5)。 - 【终极手段】 检查数据库中存储的图片路径是否完整正确。
按照这个流程,90%以上的图片不显示问题都能被解决,希望对你有帮助!
