ThinkPHP 6 配置模板需用绝对路径、清缓存、同步修改模板标签,否则静默失效;多应用需单独配置,view_replace_str 仅对 ThinkTemplate 有效。

直接改 config/view.php 就行,但改错一个参数(比如路径写相对、缓存没清、定界符不统一)就会导致模板不渲染或报错,不是改了就生效。
view_path 必须用绝对路径,否则静默失效
ThinkPHP 6 的 view_path 不接受 ./app/view/ 或 app/view/ 这类写法,运行时不会报错,但会 fallback 到默认路径,你改的等于白改。
- 正确写法是
'view_path' => app_path('view/')或'view_path' => __DIR__ . '/../app/view/' - 多应用模式下,每个应用要单独配,不能只改全局
config/view.php - 改完必须删掉
runtime/view/下所有缓存文件,否则旧路径还在用
tpl_begin / tpl_end 改了之后,所有模板里的标签都要同步换
把 'tpl_begin' => '{' 改成 'tpl_begin' => '{{',不只是配置生效,所有 {$name} 都得手动改成 {{ $name }},否则变量不输出,且无提示。
- 常见踩坑:只改配置,没批量替换模板文件,结果页面一片空白
- 如果项目里用了 JS 框架(如 Vue),建议避开
{{}},改用和},避免冲突 -
taglib_begin和taglib_end默认和tpl_begin/tpl_end一致,若只改普通标签而漏掉标签库标记,{volist name="list"}这类语法会解析失败
type 设为 'php' 之前,必须确认 think-view 扩展已安装
TP6 默认配置 'type' => 'Think',但这个引擎不在核心里,依赖 topthink/think-view 包。如果没装就设成 'Think',启动直接报 Class "think\Template" not found。
- 装扩展:运行
composer require topthink/think-view - 设为 PHP 原生模板可跳过扩展:把
'type' => 'php',模板里就用,但失去{volist}等标签能力 -
view_suffix要和真实文件后缀一致,比如设成'html',但你写了index.tpl,那fetch('index')就找不到
view_replace_str 替换规则只在模板编译后生效,不作用于原生 PHP 模板
'view_replace_str' => ['__STATIC__' => '/static'] 这种配置,只对 ThinkTemplate 引擎有效。如果你切成了 'type' => 'php',{__STATIC__} 不会被替换,它就只是字面字符串。
- PHP 模板里要写成
或提前 assign 进去 - 替换字符串区分大小写,
__static__和__STATIC__是两个键 - 别在
view_replace_str里写正则或路径拼接逻辑,它只做简单字符串替换
最常被忽略的是缓存清理和路径绝对化——改完配置跑不起来,90% 是因为没删 runtime/view/,或者 view_path 写成了相对路径。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











