dede一键更新网站这个功能,用过的站长都清楚它有多省事。织梦CMS从很早的版本就内置了这个工具,到现在DedeCMS V5.7依然是很多人每天必点的按钮。它把更新系统缓存、生成栏目页、生成文档页、更新主页这些零散操作打包在一起,点一下就能把整站静态页面重新生成一遍。对于内容量大、栏目多的网站,手动一个个点简直要命,一键更新就是救星。
登录后台后,在顶部菜单找到“系统”,下拉里就有“一键更新网站”。点进去会看到几个勾选项,通常默认全选,包括更新系统缓存、更新栏目HTML、更新文档HTML、更新主页HTML、更新专题HTML等。下面有个“开始更新”按钮,点下去就会按顺序执行。更新过程中页面会显示进度,比如正在更新哪个栏目、哪个文档,走完一圈就算完成。
这个功能的原理不复杂。dede是静态化系统,前台访问的是实实在在的HTML文件。你发了新文章或者改了模板,数据库变了,但服务器上那些HTML还是旧的,必须重新生成。一键更新就是遍历数据库,按照模板重新输出HTML。底层调用的是makehtml相关函数,按栏目ID和文档ID逐个生成。所以它本质上是个批量生成器,省去了你手动进每个栏目点“更新HTML”的麻烦。
但用的时候经常会遇到卡住的情况。更新到一半不动了,多半是PHP执行时间限制。默认max_execution_time是30秒,文章一多肯定不够。可以改php.ini里的这个值,或者用dede自带的“更新设置”调整每批生成的数量。内存限制也要注意,memory_limit太小会直接崩掉,建议至少128M。另外服务器性能一般的话,别一次全选,分批来。先更新栏目,再更新文档,最后更新主页,这样压力小很多。
我自己的站有三千多篇文章,服务器是2核4G,每次一键更新大概要等五六分钟。如果是五百篇左右的企业站,一两分钟就能跑完。上万篇的大站,十几分钟甚至更久都正常,具体看模板复杂度和服务器配置。模板里如果用了大量标签、循环、自定义函数,生成速度会明显变慢。所以模板尽量精简,别在列表页塞太多查询。

还有个常见问题:一键更新后页面没变化。先别急,可能是浏览器缓存,强制刷新试试。如果还不行,检查生成日志,看是不是某个栏目生成失败。有时候是栏目权限问题,或者模板文件有语法错误,导致生成中断但没明显提示。可以单独进那个栏目手动更新一次,看报什么错。
更新前一定要备份数据库和模板文件。一键更新会覆盖现有HTML,如果模板有错,生成出来的页面可能乱掉,甚至白屏。备份了就能随时回滚。另外更新时最好关掉浏览器其他标签,避免干扰。如果网站有伪静态规则,一键更新生成的是纯静态文件,要注意规则冲突,别让伪静态把静态页给截了。
dede一键更新网站虽然老,但实用。掌握好节奏,定期更新,能省很多事。不要等到网站改版才想起来用,平时发完文章顺手点一下,保持静态页面最新。养成习惯后,你会发现这个按钮比想象中好用。