DedeCMS 的“自动更新 HTML”机制,其核心是 “触发式更新”,也就是说,它不是像定时任务那样每隔一段时间就去扫描所有页面并更新,而是当你对网站内容进行特定操作(如发布文章、修改栏目、更新文档等)时,系统会自动触发一个更新流程,重新生成相关的 HTML 页面。

(图片来源网络,侵删)
下面我将从 “原理”、“后台设置”、“常见场景” 和 “常见问题排查” 四个方面来详细说明。
核心原理:动态发布与静态生成
要理解自动更新,首先要明白 DedeCMS 的工作模式:
- 数据存储:你发布的所有文章、分类、模型等信息,都存储在网站的 MySQL 数据库中。
- 动态访问:当用户访问一个动态页面时(如
plus/view.php?aid=123),DedeCMS 会实时从数据库中读取文章内容,然后渲染成一个完整的 HTML 页面发送给用户,这种方式对服务器压力大,且不利于搜索引擎抓取。 - 静态生成 (HTML):为了解决上述问题,DedeCMS 提供了“生成 HTML”功能,它会将数据库中的内容,一次性转换成
.html格式的静态文件,并存储在你的网站目录下(如/a/123.html),用户直接访问这个静态文件,速度极快,服务器压力也小。 - 自动更新机制:当你在后台修改了某个数据(比如把一篇文章从“草稿”状态改为“已发布”),DedeCMS 会记录下这个操作,它会根据你的配置,自动去重新生成那些因为这个操作而“可能发生变化”的页面。
一句话总结:自动更新 = 内容变更 + 触发器 + 批量重新生成相关页面。
后台设置:开启自动更新
DedeCMS 的自动更新开关主要在 “系统” -> “系统基本参数” 中设置。

(图片来源网络,侵删)
- 登录 DedeCMS 后台。
- 在顶部菜单栏找到 “系统”,点击进入。
- 在左侧菜单中选择 “系统基本参数”。
- 在打开的页面顶部,点击 “核心设置” 选项卡。
你会看到几个关键的自动更新选项:
重要参数详解:
| 参数名称 | 参数说明 | 推荐设置 |
|---|---|---|
| IsHtml | 网站默认主页链接形式 | 是 (强烈推荐) |
| IsHtml | 页链接形式 | 是 (强烈推荐) |
| IsHtml | 栏目列表页链接形式 | 是 (强烈推荐) |
| IsHtml | 首页/频道页链接形式 | 是 (强烈推荐) |
| 自动更新HTML设置 | 发布文章时,是否自动更新相关栏目? | 是 (勾选) |
| 自动更新HTML设置 | 发布文章时,是否自动更新首页? | 是 (勾选) |
| 自动更新HTML设置 | 审核文章时,是否自动更新相关栏目? | 是 (勾选) |
| 自动更新HTML设置 | 审核文章时,是否自动更新首页? | 是 (勾选) |
| 自动更新HTML设置 | 修改文章时,是否自动更新相关栏目? | 是 (勾选) |
| 自动更新HTML设置 | 修改文章时,是否自动更新首页? | 是 (勾选) |
| 自动更新HTML设置 | 新增评论时,是否自动更新文章页? | 是 (勾选) |
| 自动更新HTML设置 | 修改栏目时,是否自动更新栏目列表页? | 是 (勾选) |
| 自动更新HTML设置 | 修改栏目时,是否自动更新其父栏目及首页? | 是 (勾选) |
设置建议:
- 对于绝大多数网站,请将所有 “IsHtml” 选项都设置为 “是”,并将所有 “自动更新HTML设置” 选项全部勾选为 “是”,这样可以最大限度地保证网站的静态化和时效性。
- 如果你的网站服务器性能非常差,或者更新内容极其频繁,可以酌情关闭部分更新(如关闭评论触发的更新),但这会牺牲掉一部分实时性。
常见场景:自动更新会更新哪些页面?
理解了设置,我们再来看一下具体操作会触发哪些页面的更新。

(图片来源网络,侵删)
| 操作类型 | 会自动更新的页面 | 说明 |
|---|---|---|
| 发布/审核/修改一篇新文章 | 该文章的内容页 (/a/123.html)该文章所在栏目的列表页 ( /category/1/)该文章所在栏目的上一级栏目列表页 (如果存在) 网站首页 ( /index.html) |
这是最常见、最核心的更新逻辑,确保了新内容能被首页和栏目页收录。 |
| 修改一个栏目信息 (如名称、简介) | 该栏目自身的列表页 (/category/1/)该栏目的父栏目列表页 (如果存在) 网站首页 ( /index.html) |
因为栏目信息可能被首页或父栏目调用,所以需要一并更新。 |
| 修改网站首页模板 | 仅网站首页 (/index.html) |
修改了首页的“样子”,自然只需要重新生成首页。 |
| 修改文章列表页模板 | 所有使用该模板的栏目列表页 | 如果多个栏目共享同一个列表模板,修改这个模板会触发所有这些栏目的更新。 |
| 修改文章内容页模板 | 所有已发布的文章内容页 | 这是一个非常消耗资源的操作,因为要遍历所有文章,请谨慎操作。 |
| 新增/删除评论 | 被评论的文章内容页 (/a/123.html) |
评论是文章的一部分,评论数变化后,文章页需要更新以显示最新评论数。 |
常见问题排查:为什么我的页面没更新?
如果按照上述设置了,但页面还是没有自动更新,可以从以下几个方面排查:
目录权限问题 (最常见)
DedeCMS 需要有权限在你的网站目录下创建、修改和删除 .html 文件。
- 检查方法:登录你的 FTP 或服务器管理面板,查看 DedeCMS 安装目录下的
a/(文章页)、html/(默认目录,可自定义)、 (首页) 等目录的权限。 - 解决方法:将这些目录的权限设置为
755(Linux/Unix) 或Everyone读取和写入 (Windows),确保运行网站的用户(如www-data,apache,nobody)对这些目录有写入权限。
文件锁机制 (防重复生成)
DedeCMS 在生成 HTML 时,会先创建一个临时的锁文件(如 index.lock),防止在生成过程中被重复触发,如果生成过程被意外中断(如服务器超时),这个锁文件可能没有被删除。
- 检查方法:查看你的网站根目录或
data/目录下,是否存在index.lock,category_1.lock等文件。 - 解决方法:直接删除这些
.lock文件即可。
模板文件语法错误
如果模板文件(.htm 文件)中存在语法错误,DedeCMS 在解析时会失败,从而导致生成失败。
- 检查方法:查看后台的 “系统” -> “错误报告”,可能会有相关错误日志,或者尝试手动生成一个页面,看系统是否报错。
- 解决方法:检查并修正模板文件中的语法,如
{dede:arclist}等标签的拼写和参数是否正确。
服务器环境问题
- PHP 执行超时:如果一次性要更新的页面太多(如批量发布1000篇文章),PHP 的执行时间可能超过服务器的限制(如
30秒),导致生成中断。- 解决方法:联系你的主机商,适当调整
max_execution_time参数,或者分批发布文章。
- 解决方法:联系你的主机商,适当调整
- 安全软件拦截:部分服务器装有安全狗等软件,可能会将 DedeCMS 的生成操作误判为攻击行为而拦截。
- 解决方法:检查安全软件日志,或将 DedeCMS 的后台目录和生成操作加入白名单。
手动生成功能
如果自动更新失灵,或者你只是想一次性更新所有页面,可以使用 DedeCMS 的手动生成功能。
- 位置:后台菜单 “生成”。
- 功能:
- 主页更新:只更新首页。
- 栏目更新:可以更新指定栏目、所有栏目。
- 文档更新:可以更新指定文章、所有文章、带图片的文章等。
- 其他:还可以更新自定义页面、JS/CSS 文件等。
这个功能是排查问题和网站维护的利器。
要让 DedeCMS 自动更新 HTML,核心步骤就是:
- 后台设置:进入
系统->系统基本参数->核心设置,将所有IsHtml和自动更新HTML设置都开启。 - 保障权限:确保网站目录有正确的写入权限(通常是
755)。 - 理解逻辑:明白发布文章会更新文章页、栏目页和首页,修改模板会更新对应页面。
- 学会排查:遇到问题,首先检查目录权限和
.lock文件,必要时使用手动生成功能进行诊断和修复。
通过以上设置,你的 DedeCMS 网站就能实现高效的静态化管理,为用户提供快速的访问体验,并有利于搜索引擎的优化。
