信智网络

joomla缓存

外贸建站 Joomla+Virtuemart建站 970

joomla的缓存机制测试:

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_各自目录。

 

在extensions->Plugin Manager里,找到System cache这个插件,默认是disable的。另外把Use Browser Caching这个也选择yes。不过有些动态的内容选择另外再选择把cache关掉。主要是Extension -> Module Manager下选择 mod_mainmenu类型,在Advanced Parameters里的Caching选择no caching。不做这样设置之后,有任何的更新后需要在服务器上把cache删除掉,新的内容才能显示出来。有可能还会遇到其他问题。

不过我还用了Cssjscompress这个插件的,目前来说,效果不是很明显,这个插件我用在服务器上测试是没问题的,可是在自己的debian上做本地测试却出了问题,页面什么也显示不了,满屏幕的错误,关掉这个插件就好了

 

ie的css hack:

<link href="all_browsers.css" rel="stylesheet" type="text/css">
<!--[if IE]> <link href="ie_only.css" rel="stylesheet" type="text/css"> <![endif]-->
<!--[if lt IE 7]> <link href="ie_6_and_below.css" rel="stylesheet" type="text/css"> <![endif]-->
<!--[if !lt IE 7]><![IGNORE[--><![IGNORE[]]> <link href="recent.css" rel="stylesheet" type="text/css"> <!--<![endif]-->
<!--[if !IE]>--> <link href="not_ie.css" rel="stylesheet" type="text/css"> <!--<![endif]-->




文章评论

 
E-mail:
内容: