核心原因:模板文件被编译成了 PHP 文件
DedeCMS 为了提高运行效率,它的工作流程是这样的:

(图片来源网络,侵删)
- 读取模板:当用户访问一个页面时(文章列表页
list_article.htm),DedeCMS 不会直接读取list_article.htm这个 HTML 模板文件。 - 检查编译文件:它会先去
./templets/目录下寻找一个对应的编译文件,list_article.php。 - 对比更新:DedeCMS 会对比
list_article.htm模板文件和list_article.php编译文件的修改时间。- 如果模板文件比编译文件新:说明模板被修改过了,DedeCMS 会重新读取
list_article.htm的内容,将其中的模板标签(如{dede:arclist})转换成 PHP 代码,然后生成新的list_article.php文件,最后再执行这个 PHP 文件来显示页面。 - 如果编译文件比模板文件新或一样:说明模板没有改动,DedeCMS 就会直接执行已有的
list_article.php文件,从而跳过了读取和解析模板的步骤,速度更快。
- 如果模板文件比编译文件新:说明模板被修改过了,DedeCMS 会重新读取
问题就出在这里:您修改了 list_article.htm,list_article.php 这个编译文件的修改时间比模板文件还要新,DedeCMS 认为“模板没有更新”,就直接使用了旧的编译文件,导致前台页面看不到任何变化。
解决方案(按推荐顺序)
最简单直接的方法 - 清空所有编译文件(成功率 99%)
这是解决此类问题最快、最有效的方法,清空所有编译文件后,DedeCMS 在下次访问页面时,会自动重新编译所有模板。
操作步骤:
- 通过 FTP 或您的虚拟主机控制面板,进入您的网站根目录。
- 找到并进入
templets目录(/templets/)。 - 在这个目录下,您会看到一个名为
cache的文件夹。直接删除这个cache文件夹。 - 删除后,刷新您的网站前台页面,DedeCMS 会自动重新生成
cache文件夹,并编译您访问过的页面。
优点:一劳永逸,能解决所有因模板编译导致的问题。 缺点:网站首次访问时会稍微慢一点,因为需要重新编译。

(图片来源网络,侵删)
使用 DedeCMS 后台自带的“更新”功能(针对特定页面)
如果您只想更新某一个页面,而不是整个网站,可以使用后台的更新功能。
操作步骤:
- 登录您的 DedeCMS 后台。
- 更新首页:
- 点击顶部菜单的 “主页” -> “主页管理” -> “更新主页HTML”。
- 在弹出的页面中,直接点击 “更新主页HTML” 按钮即可。
- 更新栏目/文章列表页:
- 点击顶部菜单的 “频道” -> “栏目管理”。
- 找到您想更新的栏目,点击后面的 [更新栏目] 或 [更新栏目] 下的子菜单(如“更新列表”)。
- 更新文章内容页:
- 进入 -> “所有档案”。
- 找到您想更新的文章,勾选它,然后点击顶部的 [更新] 按钮,选择“更新选中页面的HTML”。
优点:精确更新,不会影响其他页面。 缺点:操作步骤相对繁琐,如果修改的页面多会很麻烦。
修改文件权限(服务器环境问题)
在某些服务器环境下(如 Nginx + PHP-FPM,或者权限设置严格的虚拟主机),Web 服务器进程(如 www-data 或 nobody)可能没有权限写入 templets/cache 目录,导致无法生成新的编译文件。

(图片来源网络,侵删)
操作步骤:
- 通过 SSH 或 FTP 连接到服务器。
- 进入网站的
templets目录。 - 将
cache目录及其内部所有文件的权限设置为 755 或 777(777 是最高权限,仅作为测试用,不推荐长期使用)。- 命令行操作:
chmod -R 755 ./templets/cache/
- FTP 客户端操作: 右键点击
cache文件夹,选择“文件权限”,然后勾读、写、执行权限给所有者、组和其他人。
- 命令行操作:
优点:能从根本上解决权限导致的编译失败问题。 缺点:如果权限设置不当,会带来安全风险。
手动删除并重新生成编译文件(针对单个页面)
如果您只修改了某一个页面,可以只处理这一个页面的编译文件。
操作步骤:
- 通过 FTP 进入
templets/cache目录。 - 找到与您修改的模板文件同名的
.php文件,您修改了article_article.htm页模板),那么就找到article_article.php文件。 - 删除这个
.php文件。 - 去前台访问对应的页面,DedeCMS 会自动重新生成这个编译文件。
优点:非常精确,影响范围最小。 缺点:需要知道哪个模板文件对应哪个编译文件。
总结与排查清单
当您遇到“前台不更新”的问题时,请按以下顺序排查:
- 首选方案:直接删除
templets/cache整个文件夹,然后刷新前台页面,这能解决 99% 的问题。 - 如果不行:检查服务器文件权限,确保
templets/cache目录可写。 - 如果还不行:确认您修改的是正确的模板文件,并且已经保存,有时候可能是编辑器没有保存成功。
- 最后检查:确保您修改的是前台模板文件(位于
templets/目录下),而不是后台模板文件(位于dede/templets/目录下)。 - 特殊情况:如果您的网站开启了 “仅动态浏览” 模式,那么前台页面本身就不会生成静态 HTML 文件,所有页面都是动态调用的,这种情况下,修改模板后刷新页面即可生效,不存在静态文件不更新的问题。
希望这些方法能帮助您解决问题!
