Joomla Cache

February 18, 2010 1 Comment 分类: Joomla

Joomla Logo最初,Joomla的Cache系统还真是困扰了我一下,一个月前看了一些文档,明白了,结果现在又忘了,还是记一记吧。

算算Joomla的缓存系统应该有三个部分吧:

  1. Global Configuration —— System 下有一个Cache Settings;
  2. Extensions —— Plugin Manager 下有一个System – Cache插件;
  3. 部分Modules还有自己的Cache,在Module Manager中可以设置。

其中优先级最高、最强大的是第二种,Plugin Manager中的System – Cache插件,激活后,它会把访问过后的整个页面以一个php文件的形式存在于Joomla的/cache/page/目录,任意访客再次访问该页面的时候直接从目录读取静态文件,这时候服务器的压力是非常小的。

开启了System Cache插件之后,在Joomla后台中设置的其它Cache方式均为无效,比如:Joomla有一个自带的Module是统计当前在线人数的,即便在Module Manager中Cache设置为’Never’,它还是会被这种Page Cache缓存起来一直到过期。另外,如果是模板中设置了针对不同的浏览器显示不同的页面的话,诸如:

<?php if ($this->isIE6()) : ?>
    <?php echo "IE Die!"; ?>
<?php endif; ?>

以上代码会混乱失效(这个词是我发明的),在没有缓存的情况下,先用IE6访问会得到“IE Die!”,此时Joomla生成Cache文件,之后用Firefox访问同样的页面,同样会得到“IE Die!”。如果先用Firefox访问,不会得到任何结果并形成Cache,再用IE6访问,得不到“IE Die!”。

再来说Joomla Global Configuration中的Cache Settings,这个设置仅缓存页面上的部分内容:打开后访问主页,缓存下来的东西非常有限,生成的php文件中仅有title、keywords、description之类的东西;如果浏览文章页面,文章内容会被缓存在Joomla的/cache/com_content/目录下。也有减轻服务器负担的作用,但是不如全页面缓存来的强悍。这种缓存模式也被称为View Cache.

Joomla Module Manager中的Module各自的Cache就没啥好说的了,它们都是各自为政,生成的文件位于/cache/mod_各自目录。

相关文章
一条评论
See sth. ? Say sth. !
  1. 那还是把Global Configuration里面的cache关了吧,开启system–cache这个最高效吧。我是全开的,有时候会发现同一页面的title不一样,不知道是不是和这个有关。

    [回复]

    c.d.. February 18, 2010

发表评论

Commenter Gravatar