在使用thinkphp5.1开发的时候遇到设置__PUBLIC__没法生效的问题。此次的版本升级有比较大的改动,不少写法已经被更改,下面说下怎么去解决这个问题。php
问题简述
-
在用Php模板的时候须要引用外部的样式文件,以前的版本直接用__PUBLIC__就能够定位到指定的位置。thinkphp
-
在页面中发现__PUBLIC__并无转义成咱们须要的路径。缓存
-
在查询TP5.1的文档时候,有这么一句话。“view_replace_str配置参数改为template配置文件的tpl_replace_string配置参数。“。因此须要在config/template.php中设置tpl_replace_string的值。phpstorm
-
咱们直接添加这条配置项,代码以下。thinkphp5
'tpl_replace_string' =>[ '__PUBLIC__' => $_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['SCRIPT_NAME'])),],工具
你也能够本身设置成固定样式。spa
'tpl_replace_string' => ['__PUBLIC__'=>'/项目名/public'],orm
-
这时候刷新页面看一下。发现仍是__PUBLIC__并无转义。这里是由于Runtime下面有缓存文件。把Runtime下的文件都删除再试一下。问题完美解决了。blog