Discuz! X3.2 缓存机制,非常的不友好,例如在登陆退出后仍然显示已登陆的信息需要再刷新一次才清除,登陆后发帖总是提示还没登陆(明明已登陆)等等诡异的问题,严重影响用户感官和体验。

因此,诞生了不是用discuz缓存的人性想法。

 

修改 function_core.php 文件

vim  discuz_x3.2/upload/source/function/function_core.php

代码如下,添加红色字体

function checktplrefresh($maintpl, $subtpl, $timecompare, $templateid, $cachefile, $tpldir, $file) {

    static $tplrefresh, $timestamp, $targettplname;
    if($tplrefresh === null) {
        $tplrefresh = getglobal('config/output/tplrefresh');
        $timestamp = getglobal('timestamp');
    }

    //关闭缓存
    if(1 || empty($timecompare) || $tplrefresh == 1 || ($tplrefresh > 1 && !($timestamp % $tplrefresh))) {
        if(1 || empty($timecompare) || @filemtime(DISCUZ_ROOT.$subtpl) > $timecompare) {
            require_once DISCUZ_ROOT.'/source/class/class_template.php';
            $template = new template();
            $template->parse_template($maintpl, $templateid, $tpldir, $file, $cachefile);

 

后台更新缓存

后台管理 ——》工具 ——》 选择更新缓存

此处仅仅是更新缓存,无法删除缓存

discuz-cache-clean-01

 

后台设置缓存

后台管理 ——》 全局 ——》 性能优化 ——》 内存优化 ——》 ”内存优化功能设置“ ——》 ”关闭“缓存一些功能

discuz-cache-clean-02

 

后台管理 ——》 全局 ——》 性能优化 ——》 论坛页面缓存设置 ——》 ”缓存系数“ ——》 设置为”0",关闭缓存

discuz-cache-clean-03

 

删除缓存文件

上图中,显示了缓存文件在“data/threadcache/” 目录下,因此登陆服务器,用控制台删除缓存文件

删除缓存命令: rm -rf discuz_x3.2/upload/data/threadcache/*

 

通过上述代码修改,后台配置,缓存文件删去三项操作,最后解决了discuz缓存的严重问题,访问下面论坛看看实际效果。

亲测实验的论坛: http://forum.ithomer.net

 

全部配置文件

vim  discuz_x3.2/upload/uc_server/data/config.inc.php

上面文件,含有MySQL数据库信息等核心配置。