在使用thinkphp5.1开发的时候遇到设置__PUBLIC__无法生效的问题。这次的版本升级有比较大的改动,很多写法已经被更改,下面说下怎么去解决这个问题。

工具/原料

 
  • phpstorm
  • lnmp开发环境

问题简述

 
  1. 在用Php模板的时候需要引用外部的样式文件,之前的版本直接用__PUBLIC__就可以定位到指定的位置。

     

  2. 在页面中发现__PUBLIC__并没有转义成我们需要的路径。

     

  3. 在查询TP5.1的文档时候,有这么一句话。“view_replace_str配置参数改成template配置文件的tpl_replace_string配置参数。“。所以需要在config/template.php中设置tpl_replace_string的值。

     

  4. 我们直接添加这条配置项,代码如下。

    \’tpl_replace_string\’ =>[    \’__PUBLIC__\’ => $_SERVER[\’REQUEST_SCHEME\’].”://”.$_SERVER[\’HTTP_HOST\’].rtrim(dirname($_SERVER[\’SCRIPT_NAME\’])),],

    你也可以自己设置成固定样式。

    \’tpl_replace_string\’ => [\’__PUBLIC__\’=>\’/项目名/public\’],

     

  5. 这时候刷新页面看一下。发现还是__PUBLIC__并没有转义。这里是因为Runtime下面有缓存文件。把Runtime下的文件都删除再试一下。问题完美解决了。

     

版权声明:本文为niuben原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/niuben/p/10023999.html