问题描述:网站在windows上编写完毕后一切正常,当把程序上传到服务器中后出现找不到模板到问题。

经过层层查找发现是phpcms/lib/classes/template_cache.class.php中函数template_compile出现异常。

我有如下模板文件:phpcms/templates/default/member/sy/index.html,但经过模板解析函数template_compile处理后却跑到phpcms/plugin/目录下去找模板,这肯定是找不到到。于是修改这个模板解析函数。

原来的条件判断第三部分代码如下:

$plugin = str_replace('plugin/', '', $module);
$module = str_replace('/', DIRECTORY_SEPARATOR, $module);
$tplfile = $_tpl = PC_PATH.'plugin'.DIRECTORY_SEPARATOR.$plugin.DIRECTORY_SEPARATOR.'templates'.DIRECTORY_SEPARATOR.$template.'.html';

修改为:

$modules=explode('/',$module);
$tplfile = $_tpl = PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$modules[0].DIRECTORY_SEPARATOR.$modules[1].DIRECTORY_SEPARATOR.$template.'.html';


此时就解决了。

至于为什么windows下原来的模板解析没问题,而一到linux服务器就出问题,我也不知道为什么。