这个问题通常意味着 DedeCMS 系统在渲染一个页面时,无法在指定的目录下找到对应的模板文件(.htm 文件)。

(图片来源网络,侵删)
下面我将从最常见到最罕见的顺序,为你提供一套完整的排查和解决方案。
第一步:检查最常见的原因(90%的问题出在这里)
模板文件是否存在且位置正确?
这是最首要、最常见的原因,请按照以下步骤检查:
-
找到正确的目录:
- DedeCMS 的模板文件通常存放在
/templets/目录下。 - 具体的页面模板存放在
/templets/下的某个子文件夹里,/templets/default/(默认模板)、/templets/你的自定义模板名/等。 - 核心:你需要确定你正在访问的页面(比如文章页、列表页、首页)对应的模板文件应该放在哪个目录下。
- DedeCMS 的模板文件通常存放在
-
确定模板文件名:
(图片来源网络,侵删)- 首页:通常是
index.htm - 列表页:通常是
list_article.htm(文章列表)、list_product.htm(产品列表) 等,文件名通常以list_开头。 - 页:通常是
article_article.htm(文章内容)、article_product.htm(产品内容) 等,文件名通常以article_开头。 - 其他页面:如搜索页、RSS页等,都有对应的固定文件名。
- 首页:通常是
-
检查文件是否存在:
- 通过 FTP 或虚拟主机控制面板的文件管理器,登录你的网站空间。
- 进入
/templets/你的模板目录/路径下。 - 找到对应的文件名,看看它是不是真的在那里。
- 特别注意:文件名是否正确?有没有拼写错误?文件名后缀是不是
.htm而不是.html?(Dede 默认是.htm)。
模板目录是否被正确设置?
即使文件在 /templets/default/ 里,如果你的系统配置指向了别的地方,那也是找不到的。
- 登录 DedeCMS 后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “模板默认目录” 这一项。
- 检查这里的值是否正确,默认值是
templets,如果你的模板在templets/my_site,这里就应该填写templets/my_site。 - 确保这个路径指向了你存放模板的实际文件夹。
页面的“模板风格”是否选择正确?
在后台生成或修改页面时,可以为单个页面指定模板风格。
- 修改首页:
- 在后台,进入 “主页” -> “主页管理” -> “默认主页”。
- 点击“更改”按钮,在弹出的页面中,你可以选择“选择主页模板”。
- 确保你在这里选择的模板文件名(如
index.htm)存在于你上面设置的“模板默认目录”中。 - 检查页面下方的“模板风格”选择,确保它指向了正确的模板文件夹(如
default)。
第二步:检查权限和缓存问题
文件权限是否正确?
服务器需要读取模板文件来生成页面,如果权限设置不当,服务器就无法访问。

(图片来源网络,侵删)
- 使用 FTP 工具:
- 选中
/templets/目录以及其下的所有子目录和文件。 - 将它们的权限 设置为 755(对于目录)和 644(对于文件)。
- 这是最标准的Web服务器权限设置,可以解决大部分因权限导致的问题。
- 选中
是否开启了模板缓存?缓存是否失效?
Dede 为了提高速度,会生成静态缓存或动态缓存,如果模板文件更新了,但缓存没有更新,系统会继续使用旧的缓存,而旧的缓存可能指向一个不存在的模板。
- 清除缓存:
- 方法一(推荐):登录 DedeCMS 后台,在首页或任何页面,右上角通常有一个 “更新缓存” 或 “一键更新网站” 的按钮,点击它即可。
- 方法二(手动):通过 FTP 进入你的网站根目录,找到一个名为
cache的文件夹,将其中的所有文件 删除,然后刷新你的网站页面,系统会自动重新生成缓存。
第三步:检查系统和配置文件
检查 dede 目录下的配置文件
有些时候,问题出在系统配置文件本身。
-
检查
/dede/templets_env.php文件:- 这个文件记录了模板环境的配置。
- 用文本编辑器打开它,检查里面的
$cfg_templets_dir变量是否正确地指向了你的模板目录。$cfg_templets_dir = '/templets/default';。
-
检查
/include/config_base.php文件:- 这是 Dede 的核心配置文件。
- 检查
$cfg_templets_dir变量是否正确。
检查 URL 重写规则(如果使用了伪静态)
如果你使用了伪静态功能,URL 规则配置错误也可能导致找不到模板。
- 检查你的伪静态规则文件(通常是
.htaccessfor Apache,或web.configfor IIS)。 - 确保规则没有错误地拦截了对模板目录或文件的访问。
- 临时解决方案:可以尝试暂时关闭伪静态功能,看看问题是否解决,如果解决了,那问题就出在伪静态规则上。
第四步:检查高级或特殊情况
模板文件中是否存在错误?
模板文件本身的语法错误也可能导致渲染失败,虽然通常报错信息会更明确,但也不排除。
- 检查模板文件中是否有未闭合的标签、错误的 Dede 标签语法(如
{dede:arclist}标签是否写错)。 - 一个简单的测试:将出错的模板文件(如
list_article.htm)备份,然后创建一个全新的、最简单的list_article.htm文件,里面只写一句 "Hello World",然后重新生成列表页,看看是否能正常显示,如果能,说明问题就出在你原来的模板文件代码里。
检查 PHP 文件中的模板调用代码
对于一些自定义的页面,可能是程序员直接在 PHP 文件中指定了模板路径。
- 在你的网站根目录下查找包含类似
include或require的 PHP 文件,include(DEDETEMPLATE.'/default/my_page.htm'); // 或者 require_once(dirname(__FILE__)."/templets/default/article_show.htm");
- 检查这些代码中的模板路径是否写错。
总结与排查流程建议
当你遇到“Dede找不到模板”的问题时,请按照以下流程一步步操作:
- 确认现象:是所有页面都报错,还是某个特定页面(如文章页、列表页)?
- 检查文件:用 FTP 登录,去
/templets/目录下,找到那个丢失的文件,确认它真的在正确的位置,这是第一步,也是最重要的一步。 - 检查后台设置:进入后台“系统基本参数”,确认“模板默认目录”设置无误,再检查出错的页面(如主页、列表页)的“模板风格”和“选择模板”是否正确。
- 清除缓存:在后台点击“更新缓存”,或者手动删除
/cache目录下的所有文件。 - 检查权限:将
/templets/目录及其下所有文件和子目录的权限分别设置为 755 和 644。 - 检查配置文件:如果以上都无效,检查
/dede/templets_env.php和/include/config_base.php中的$cfg_templets_dir变量。 - 考虑伪静态:如果使用了伪静态,尝试关闭它来排查问题。
按照这个流程,90% 以上的“找不到模板”问题都能被解决,如果问题依然存在,请提供更详细的信息,
- 具体是哪个页面报错?
- 后台报错的具体提示信息是什么?
- 你使用的是 DedeCMS 的哪个版本?
这样能更精准地定位问题。
