织梦模板缓存如何关闭
tplcache
调试
性能
为什么要关闭模板缓存
织梦的模板引擎会把编译后的模板缓存到 data/tplcache/ 目录,下次访问直接读取,省去重新解析的开销。但开发调试期间,这种缓存会让你「改了模板却看不到效果」,反复怀疑人生。调试期关闭缓存,上线后再开启,是织梦建站的标准操作。
方法一:后台一键开关(推荐)
后台 → 系统 → 系统基本参数 → 性能选项,找到「是否开启模板缓存」:
模板缓存:关闭 / 开启
- 开发期选「关闭」
- 正式上线选「开启」
保存后立即生效,无需重启。
方法二:手动改配置文件
直接修改 data/config.cache.inc.php:
// 关闭模板缓存
$cfg_tpl_cache='N';
// 开启模板缓存
$cfg_tpl_cache='Y';
// 缓存有效期(秒),默认 3600
$cfg_tpl_cache_time=3600;
修改保存后,访问任意页面即可生效。
方法三:清空 tplcache 目录
即使缓存是开启的,也可以手动清空已有缓存强制刷新:
data/tplcache/*.inc ← 模板编译缓存
data/cache/*.inc ← 数据缓存(栏目、模型、配置等)
data/tplcache/*.php ← 已编译的模板
Linux 服务器可执行:
rm -rf data/tplcache/*
rm -rf data/cache/*
清空后必须重新生成 HTML,否则前台报错。
注意:切勿删除
data/tplcache/ 目录本身,否则织梦无法写入新缓存,前台会报「目录不可写」错误,需手动重建并 chmod 777。
开发期调试利器:动态浏览模式
除了关缓存,还可以临时切换为「动态浏览」模式,省去每次重新生成 HTML:
- 后台 → 核心 → 网站栏目管理 → 修改栏目 → 高级选项。
- 「栏目列表选项」改为「动态浏览」。
- 「文章命名规则」改为
{typedir}/view.php?aid={aid}。
这样改完模板直接 F5 就能看效果,调试完再切回「静态」。
URL 强制刷新参数
不想改后台配置时,可以在访问 URL 后加 ?upcache=1 或 ?t=时间戳,强制织梦重新读取模板:
https://www.example.com/index.php?upcache=1
https://www.example.com/list.php?tid=5&t=1700000000
关闭数据缓存(SQL缓存)
除了模板缓存,织梦还有数据缓存。如果调试时连数据库改动也看不到效果,需要一并关闭:
$cfg_memcache_enable='N'; // 关闭 memcache
$cfg_dsql_cache='N'; // 关闭 SQL 查询缓存
上线后必做的优化
- 开启
$cfg_tpl_cache='Y'。 - 缓存时间设为
3600秒,平衡性能与更新频率。 - 开启 OPcache 提升 PHP 执行效率。
- 使用 CDN 缓存静态资源,减少服务器回源。
- 定期 cron 清理过期
*.inc文件,避免目录膨胀。
验证缓存是否真关闭
在模板里写一个 <!--DEBUG:?php echo time();?-->,刷新页面看时间戳是否每次变化。如果不变,说明缓存仍在生效。
行动建议
本地开发环境永远把模板缓存关掉,省下大量调试时间;正式环境则一定开起来,否则高峰期会被数据库拖垮。建议把缓存开关做成部署脚本的一部分,代码推到生产时自动把 $cfg_tpl_cache 改回 Y,避免人工遗漏。把缓存策略纳入正常的运维流程,网站性能和迭代效率才能两头兼顾。