如何配置ThinkPHP中静态缓存的存放路径

网上找了很多资料,包括官方的手册,都表明说,在全局配置文件config.php中配置系统变量HTML_PATH即可,但反复调试外加删Runtime、Cache,重启WEB服务器等等均无效果,于是乎只能自己找寻解决方法。

一路顺藤摸瓜终于解决,以此文分享、备忘之。

1)首先查看ThinkPHP核心文件core.php,发现引入的各种类php中,有一名为:View.class.php,视图类。顾名思义此类应与模板输出、缓存及相关操作有关。

2)打开View.class.php,用eclipse的outline视图查看该类的结构,发现一方法名为:buildHtml(),创建静态页面。此方法有一行代码为:$htmlpath   = !empty($htmlpath)?$htmlpath:HTML_PATH;

这行代码很显然是定义静态页面的路径的,其中可以看到前面说到的HTML_PATH。使用eclipse的查看变量源位置(按住ctrl,鼠标左键点击变量),可以看到有2个供追踪的变量源位置,paths.php和~runtime.php,后者是非核心临时文件,舍弃之。

3)打开paths.php,可以找到HTML_PATH的这一行代码:define('HTML_PATH',APP_PATH.'/'.HTML_DIR.'/');,看此处可知,HTML_PATH的结果与系统变量HTML_PATH无关,而是由另外两个系统变量拼凑而成。

其中APP_PATH为项目所在路径,HTML_DIR追踪之,可在同一文件内找到代码:define('HTML_DIR',    'Html');而这个Html文件夹正是我怎么改都改不掉的缓存存放路径,于是改之,删Runtime(因为前面可以看到该临时文件夹有存放HTML_PATH变量),刷新,成功解决问题!

转载于(http://www.cnblogs.com)

原文地址:https://www.cnblogs.com/chuanqideya/p/6386410.html