在以前的thinkphp3.2中引入css/js文件的時候,要配置項目路徑
//'配置項'=>'配置值'
'TMPL_PARSE_STRING' =>array(
'__PUBLIC__' => __ROOT__.'/Application/Admin/Public',
),
而在thinkphp5中,本身不存在這個函數,所以需要配置一下,在template.php文件(項目其他位置也可以,只要能訪問到就行)新增下面這個函數(從TP3.2複製過來的)
function root(){
$root = $phpfile = '';
$iscgi = (0 === strpos(PHP_SAPI,'cgi') || false !== strpos(PHP_SAPI,'fcgi')) ? 1 : 0 ;
if ( $iscgi ) {
$temp = explode('.php',$_SERVER['PHP_SELF']);
$phpfile = rtrim(str_replace($_SERVER['HTTP_HOST'],'',$temp[0].'.php'),'/');
} else {
$phpfile = rtrim($_SERVER['SCRIPT_NAME'],'/');
}
$root = rtrim(dirname($phpfile),'/');
return (($root=='/' || $root=='\\') ? '' : $root);
}
然後在template.php文件中配置 (這個配置文件,有的版本是在config.php中)
//至於爲什麼要註釋第一行,因爲這個配置在本地能運行,項目上傳到服務器就出問題了,所以就用下面這個方法。
'tpl_replace_string' => [
// '__STATIC__' => '/static', //至於爲什麼要註釋這個,因爲這個配置在本地能運行,項目上傳到服務器就出問題了,所以就用下面這個方法。
'__STATIC__' => root().'/static',
'__UPLOADS__' => '/uploads'
],
我是自己親自試過可行,所以記錄下來。
(幾天後補充一下)
因爲涉及到域名的一些解析問題,上面講到的是針對服務器上的項目,且沒有配置域名的情況下,也就是說按照項目路徑訪問情況下。後來我給項目配置了一個域名後,還是這樣吧。(其中的道理還得再去深究一下)
'tpl_replace_string' => [
'__STATIC__' => '/static',
'__UPLOADS__' => '/uploads'
],