开始使用joomla的时候,发现joomla后台有两个关于cache的设置觉得很奇怪,之后分析过源代码,原来两个设置各有用途。
Global Configuration -> cache
Plugin Manager-->System - Cache
其实第一个设置是一个Cache功能开关。joomla有自己的API,其中有个JCache的API,可以对数据进行缓存。目前joomla的cache只支持file一种储存方式,但API里对其他方式有预留,比如效率很高的memcache和数据库方式。joomla自带的组件大多都有用cache api来缓存自己的数据,第三方组件也有使用cache,但如果Global Configuration把cache关掉,所有cache api将会不生效。
而插件System - cache,就不同,它是页面级的缓存,无论你的组件有没有使用cache,只要是要输出页面的内容,它全部缓存。不过这会引起比较多的问题,比如一些有交互性的组件,如留言、在线聊天、表单提交等,都可能受到影响。
两种cache比较,第一种安全点,第二种比较适合很单纯的内容发布网站,没有很多交互性的。
值得注意的是,因为目前默认只有file方式,所以需要把数据写入到一个文件上,在根目录下的cache就是保存cache的地方。也就是说,cache目录必须是joomla可以写入的目录,cache才能正常生效。