在使用thinkphp5.1開發的時候遇到設置__PUBLIC__無法生效的問題。這次的版本升級有比較大的改動,很多寫法已經被更改,下面說下怎么去解決這個問題。
問題簡述
-
在用Php模板的時候需要引用外部的樣式文件,之前的版本直接用__PUBLIC__就可以定位到指定的位置。
-
在頁面中發現__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下的文件都刪除再試一下。問題完美解決了。