第一步:后台基础设置检查(最常见的原因)
这是最容易出错,也最应该首先检查的地方。

(图片来源网络,侵删)
-
检查“附件目录”设置
- 进入
DedeCMS后台->系统->系统基本参数->附件设置。 - 找到 “附件保存目录”,确保这个目录存在并且有写入权限(通常是
uploads或你自定义的目录)。 - 操作建议:如果不确定,可以将其修改为
uploads,然后在网站根目录下手动创建这个文件夹,并给予777权限(仅用于排查,生产环境建议设置为755)。
- 进入
-
检查“远程站点”和“站点的根目录URL”
- 在
系统基本参数->核心设置中。 - “站点根目录URL”:必须填写你的网站完整域名,
https://www.yourdomain.com,不要以斜杠结尾。 - “附件目录URL”:通常设置为
{cmspath}/uploads,{cmspath}会被系统自动替换为你的站点根目录URL,确保这个路径是正确的。 - “是否开启远程站点”:务必设置为“否”,除非你非常清楚自己在做什么,否则开启远程站点会导致图片路径混乱,尤其是在自定义字段处理上。
- 在
-
检查“图片默认大小”和“缩略图开关”
系统基本参数->附件设置-> “缩略图默认宽度/高度”:确保填写了有效的数字,而不是留空。系统基本参数->核心设置-> “是否使用远程图片”:同样,务必设置为“否”。系统基本参数->核心设置-> “是否使用缩略图”:根据你的需求设置为“是”或“否”。
第二步:自定义字段定义检查
确保你的字段类型和参数是正确的。

(图片来源网络,侵删)
-
字段类型
- 用于上传图片的自定义字段,其类型必须是 “图片(单图)” 或 “图片(多图)”,不要使用“文本”或其它类型。
-
字段参数
- 进入
DedeCMS后台->核心->内容模型管理-> 选择你正在使用的模型(文章”) ->更改。 - 在字段列表中找到你的图片字段,点击后面的
管理->字段管理->修改字段。 - 检查以下关键参数:
- “表单提示文字”:填写用户上传图片时的提示,如“请上传产品图片”。
- “默认值”:可以留空。
- “后台数据表字段名”:这是字段在数据库中的名字,系统会自动生成,确保无误。
- “字段大小”:可以设置为
200或更大,方便输入。 - “自动生成缩略图”:务必选择“是”。
- “缩略图宽度/高度”:填写你想要的缩略图尺寸。
- “远程图片是否保存本地”:选择“是”,这样能保证图片始终在你的服务器上。
- “图片库上传方式”:选择
Flash或Ajax,根据你的喜好和服务器环境选择。
- 进入
第三步:内容发布与调用检查
确保你在发布内容和在前台调用时操作正确。
-
内容发布
(图片来源网络,侵删)- 在发布或编辑文章时,点击你的自定义图片字段旁边的 “上传/维护图片” 按钮。
- 在弹出的窗口中上传图片,上传成功后,图片下方会显示代码,类似:
{dede:field name='your_field_name'/}这段代码就是调用图片的标签。
- 注意:不要手动修改这段代码,如果你不小心删掉了,或者想调用缩略图,可以使用更精确的标签(见下一步)。
-
前台模板调用
- 调用原图:
{dede:field name='your_field_name'/} - 调用缩略图:
{dede:field name='your_field_name' function='GetImage(@me, 200, 200)'/}function='GetImage(@me, 宽度, 高度)'是一个系统函数,用于生成指定尺寸的缩略图。- 如果这个函数不生效,可能是你的DedeCMS版本问题,或者需要重新上传图片来触发缩略图生成。
- 调用原图:
-
检查HTML源码
- 在前台页面,使用浏览器“查看网页源代码”功能。
- 找到你的图片标签
<img src="..." />。 - 检查
src属性的值:- 路径是否正确? 路径应该是
/uploads/.../...jpg这样的格式,而不是http://localhost/uploads/...(如果你的网站是线上域名)。 - 路径是否完整? 路径是否包含了正确的子目录(按日期生成的目录)?
- 图片是否存在? 将
src属性的值复制到浏览器地址栏,看图片是否能正常显示,如果显示404,说明图片文件确实不存在于服务器上。
- 路径是否正确? 路径应该是
第四步:服务器环境与权限检查
如果以上都正确,那很可能是服务器环境的问题。
-
目录/文件权限
/uploads目录:必须有写入权限,可以设置为755。/uploads/下的子目录:DedeCMS会按日期自动创建子目录(如2025/10/31),这些子目录也必须有写入权限,设置为755。/data目录:必须有写入权限,用于缓存等,设置为755。/include目录:部分情况下也需要有写入权限,设置为755。- 重要提示:
777权限不安全,仅在排查问题时临时使用,找到原因后应立即修改为755。
-
PHP 环境
PHP fileinfo扩展:DedeCMS 上传和处理文件依赖这个扩展,检查你的PHP环境是否已安装并启用fileinfo,如果未安装,会导致上传失败或文件类型识别错误。PHP GD2库:处理图片(生成缩略图)需要这个库,确保已安装并启用,可以通过phpinfo()函数来检查。
-
.htaccess文件- 检查网站根目录下的
.htaccess文件,其中是否有禁止访问uploads目录或其子目录的规则,如果包含Deny from all,那么图片将无法被访问。
- 检查网站根目录下的
-
安全软件/防火墙
- 服务器上的安全软件(如
iptables、WAF)或云服务商的安全组规则,是否拦截了对uploads目录的访问?
- 服务器上的安全软件(如
总结与终极排查思路
如果以上所有步骤都检查过仍然无效,请按以下思路操作:
- 重新上传:删除旧文章,重新发布一篇新文章,并重新上传图片,观察是否能正常生成缩略图。
- 切换模板:临时切换到DedeCMS默认的模板,看看问题是否依旧,这样可以排除是模板代码的问题。
- 查看错误日志:检查服务器的错误日志(如
php_error.log)或DedeCMS后台的“系统日志”,看是否有相关的错误信息。 - 恢复默认:如果问题出在某个特定模型上,可以尝试备份该模型,然后删除并重新创建一个一模一样的模型和字段,有时这能解决一些数据库层面的配置错乱问题。
按照这个流程,从最简单的后台设置开始,逐步深入到服务器环境,99%的图片无法生成问题都能被解决,祝你成功!
