记录我工作学习生活中的点点滴滴......

ThinkPHP的__TMPL__无法得到正确模版路径的bug
发布于 开发框架
2012-12-18 15:48:58
4181
0

姑且我认为是小bug吧,在其他人那里不知道如何。

新版tp入口文件精简了很多,只引入thinkphp.php文件即可,但是当这样做的话如果程序在根目录则会有一个奇葩的bug,APP_TMPL_PATH获取到的模版路径带上了根目录所在的目录

比如我的程序在D:/WorkSpace/Code/wwwroot/

获取到的APP_TMPL_PATH是/wwwroot/Tpl/admin/default/

而正确的应该是/Tpl/admin/default/

可见原因是多获取了一个/wwwroot

通过阅读代码发现问题出在这里

defined('APP_NAME') or define('APP_NAME',basename(dirname($_SERVER['SCRIPT_FILENAME'])));

将其改为下面后正常。
defined('APP_NAME') or define('APP_NAME',basename(dirname($_SERVER['SCRIPT_NAME'])));
如果不想动代码可以在入口文件中加上define('APP_NAME','');
具体有关这两个SERVER变量的区别大家可以google,不知道官方为什么这样设置,暂不清楚。


分享本文到:
除非特殊注明,本文版权归原作者所有,欢迎转载!转载请注明版权以及本文地址,谢谢。
转载保留版权:Pakey's BLog >>开发框架 >>ThinkPHP的__TMPL__无法得到正确模版路径的bug
本文地址:http://www.pakey.net/blog/thinkphp-tmpl-bug.html