ThinkPHP5.1 里面__PUBLIC__无法生效的问题
在用PHP
模板的时候需要引用外部的样式文件,之前的版本直接用__PUBLIC__
就可以定位到指定的位置。
<Link href="__PUBLIC__/static/css/main.css" rel="stylesheet" />
但是页面中__PUBLIC__
并没有解析成对应的路径。
在查询TP5.1的文档时候,有这么一句话。“view_replace_str配置参数改成template配置文件的tpl_replace_string配置参数。”所以需要在config/template.php
中设置tpl_replace_string
的值。
我们直接添加这条配置项,代码如下。
'tpl_replace_string' =>[
'__PUBLIC__' => $_SERVER['REQUEST_SCHEME']."://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['SCRIPT_NAME'])),
],
你也可以自己设置成固定样式。
'tpl_replace_string' => ['__PUBLIC__'=>'/项目名/public'],
这时候刷新页面看一下,发现还是__PUBLIC__
并没有转义。这里是由于Runtime
下面有缓存文件。把Runtime
下的文件都删除一下,就可以了。