ThinkPHP 6 默认模板后缀为 html,需在 config/view.php 中修改 view_suffix 参数(如设为 'php'),并清除 runtime/view/ 缓存才能生效。

模板后缀配置在 config/view.php 文件中修改
ThinkPHP 6 默认模板后缀是 html,改它必须动 view.php 配置文件,而不是直接改文件名或在控制器里硬编码。这个文件位于项目根目录的 config/ 下(多应用模式则在对应应用子目录如 app/index/config/view.php)。其他地方改无效,比如在控制器里用 fetch('index.php') 不会绕过后缀规则——系统仍会自动拼上 .html 后再去找文件。
view_suffix 参数控制实际后缀,不是文件扩展名本身
配置项叫 view_suffix,它的值就是最终拼到模板路径末尾的字符串。例如:
'view_suffix' => 'php',
会让系统去加载 index.php 而不是 index.html;设为 htm 就找 index.htm。注意:这不改变你编辑时用什么编辑器打开,也不影响 Web 服务器是否解析 PHP —— 它只影响 ThinkPHP 模板定位逻辑。
常见误操作包括:
立即学习“PHP免费学习笔记(深入)”;
- 把
view_suffix改成.php(带点)→ 实际变成.php.php,报错Template not exists - 改了配置但没清缓存 → 旧编译文件还在,仍按老后缀执行
- 用了多应用却只改了全局
config/view.php,而应用级配置会覆盖它
改完必须清空 runtime/view/ 缓存目录
ThinkTemplate 引擎会把模板编译成 PHP 文件缓存起来,默认放在 runtime/view/。后缀一变,旧缓存就失效,但框架不会自动删它——你得手动清空,否则仍运行旧逻辑,甚至出现「配置已改、但页面还是按 .html 加载」的假象。
清缓存方式(任选其一):
- 删除
runtime/view/整个目录 - 执行命令:
php think clear:cache --type=view - 在开发环境开启
'view_cache' => false(仅限调试)
TP5 和 TP6 的配置位置略有差异
TP5 中该配置可能写在 config.php 或模块配置里,键名是 TMPL_TEMPLATE_SUFFIX;TP6 统一收归到 view.php 的 view_suffix。如果你从 TP5 升级过来,别漏掉这个命名变化,否则配置不生效。
另外,view_depr(目录分隔符)和 view_dir_name 虽不直接影响后缀,但它们和 view_suffix 共同决定最终模板路径拼接结果,改其中一个最好顺手核对另外两个是否还匹配当前目录结构。



















