问题根源分析
这个错误的核心是 “请求” 与 “文件” 不匹配,DedeCMS 需要根据你设置的栏目、文章等参数,去一个固定的路径下寻找一个固定的模板文件,但这个文件找不到了。

(图片来源网络,侵删)
请按照以下步骤,从最常见、最简单的可能性开始排查:
第一步:检查最常见的原因(90%的问题出在这里)
模板文件上传/丢失
这是最最常见的原因,你可能在后台修改了模板,但忘记将修改后的文件通过FTP上传到服务器上。
-
如何检查:
- 通过FTP工具连接到你的网站服务器。
- 进入你的网站模板目录,通常是
/templets/。 - 进入你当前使用的模板文件夹,
/templets/default/或你自定义的模板文件夹(如/templets/mytheme/)。 - 根据错误提示或你设置的模板路径,找到那个“不存在”的文件,错误是
index.htm不存在,就去/templets/你的模板文件夹/下找index.htm,如果是列表页list_1.htm不存在,就去同样的目录下找list_1.htm。
-
解决方案:
(图片来源网络,侵删)- 如果你在后台编辑了模板: 请务必将编辑好的代码,保存为一个
.htm文件,然后通过FTP上传到正确的目录中,覆盖旧文件。 - 如果你没有编辑模板: 检查这个文件是否被意外删除或移动了,如果被删除,请从你的备份中恢复,或者重新下载一个默认的模板文件放回原位。
- 如果你在后台编辑了模板: 请务必将编辑好的代码,保存为一个
模板文件路径设置错误
在DedeCMS后台,你可以为不同的栏目指定不同的模板文件,如果这里的路径设置错误,系统就会找不到文件。
-
如何检查:
- 登录DedeCMS后台。
- 进入【核心】 -> 【频道管理】 -> 【所有栏目管理】。
- 找到报错的那个栏目,点击后面的 【修改】。
- 在栏目修改页面,找到 【列表模板】 或 【文章模板】 这两个选项。
- 检查这里的路径是否正确,它应该是一个相对于
/templets/你的模板文件夹/的路径,list_article.htm或article_article.htm。 - 特别注意: 路径中不能包含 这样的上级目录跳转,这通常是错误配置的标志,它应该是一个直接的文件名。
-
解决方案:
- 将模板路径修改为正确的文件名,
list_1.htm(如果列表页模板是这个)或直接使用默认的list_article.htm。 - 保存后,再去前台刷新页面。
- 将模板路径修改为正确的文件名,
第二步:检查系统配置和缓存问题
如果第一步没有解决问题,那么可能是系统配置或缓存导致的。

(图片来源网络,侵删)
模板目录权限不正确
Web服务器(如Apache/Nginx)需要有读取模板文件的权限。
-
如何检查:
- 通过FTP或服务器管理面板(如cPanel),检查
/templets/目录以及你使用的模板子目录(如/templets/default/)的权限。 - 目录权限应设置为 755。
- 通过FTP或服务器管理面板(如cPanel),检查
-
解决方案:
- 将模板目录及其内部所有文件和子目录的权限都设置为 755(目录)和 644(文件),你可以使用FTP软件的“文件权限”功能批量修改。
缓存问题
DedeCMS有强大的缓存机制,有时缓存文件损坏或与实际文件不同步,也会导致这类错误。
- 解决方案:
- 登录DedeCMS后台。
- 进入【系统】 -> 【系统基本参数设置】。
- 在左侧菜单找到 【性能选项】。
- 将 “是否开启模板缓存” 修改为 “否”,然后保存。
- 回到前台刷新页面,看看错误是否消失,如果消失了,说明是缓存问题。
- 问题解决后,可以再把它改回“是”,以提高网站访问速度,或者,你也可以直接删除缓存目录下的所有文件。
服务器伪静态规则冲突
如果你开启了伪静态,但服务器上的伪静态规则(如 .htaccess 或 Nginx的 rewrite 规则)与DedeCMS不匹配,可能会导致系统无法正确解析出模板路径。
-
如何检查:
- 检查网站根目录下的
.htaccess文件(如果是Apache服务器)。 - 检查Nginx服务器配置中关于你网站的
server块里的rewrite规则。
- 检查网站根目录下的
-
解决方案:
- 对于Apache: 检查
.htaccess文件内容是否与DedeCMS官方推荐的规则一致,你可以从DedeCMS官方文档或安装包中找到标准的.htaccess文件进行对比。 - 对于Nginx: 检查
rewrite规则,标准的DedeCMS Nginx伪静态规则通常是这样的:rewrite "^/special/(.+)\.html$" /special/index.php?$1 last; if (!-e $request_filename) { rewrite "^/index\.html$" /index.php last; rewrite "^/listinfo([0-9]+)\.html$" /plus/list.php?tid=$1 last; rewrite "^/info([0-9]+)\.html$" /plus/view.php?arcid=$1 last; rewrite "^/message\.html$" /plus/message.php last; } - 如果不确定,可以先尝试将这些规则注释掉或暂时移除,看看问题是否解决,如果解决了,再逐步排查是哪条规则的问题。
- 对于Apache: 检查
第三步:检查其他可能性
如果以上方法都无效,可以尝试以下操作:
生成HTML
如果你是静态化网站,可能在修改了栏目或模板后,没有重新生成对应的HTML文件。
- 解决方案:
- 进入【生成】 -> 【一键更新网站】。
- 建议先选择 “更新HTML” -> “主页HTML”,更新首页。
- 然后选择 “更新栏目HTML”,更新所有栏目。
- 最后选择 “更新文档HTML”,更新所有文档。
- 在生成过程中,系统会提示你哪些文件的模板不存在,这能帮你精确定位问题。
检查文件编码
模板文件的编码格式必须是 UTF-8 无BOM格式,如果保存为UTF-8 with BOM格式,DedeCMS在解析时可能会出错。
-
如何检查:
- 使用专业的代码编辑器(如 VS Code, Sublime Text, Notepad++)打开模板文件。
- 在编辑器底部状态栏可以看到文件的编码格式。
- 如果不是
UTF-8,请将其转换为UTF-8。
-
解决方案:
- 在代码编辑器中,将文件另存为
UTF-8编码(不带BOM格式)。
- 在代码编辑器中,将文件另存为
总结排查流程
遇到“模板文件不存在,无法解析文档”时,请按以下顺序排查:
- 【首要检查】 通过FTP确认 模板文件
/templets/xxx/是否存在,如果不存在,上传或恢复它。 - 【后台检查】 进入 【栏目管理】,检查 【列表模板】/【文章模板】 的路径是否写错。
- 【权限检查】 确认 模板目录权限 是否为755。
- 【缓存检查】 暂时 关闭模板缓存,刷新页面测试。
- 【伪静态检查】 检查
.htaccess或 Nginx的rewrite规则 是否有冲突。 - 【生成检查】 如果是静态网站,执行 【一键更新网站】 生成HTML。
- 【编码检查】 确认模板文件是否为 UTF-8无BOM格式。
按照这个流程,99%的“模板文件不存在”问题都能得到解决,希望这个详细的指南能帮助你快速解决问题!
