在使用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