1 thinkcmf5-安装成功后能否改变目录名称

 安装thinkcmf5时,要把它部署到web目录下。假如web目录是d:\phpweb

使用一段时间后,想修改"cmf"目录怎么办?例如:将"cmf"改成"cmf5",使用cmf5后台时会出现以下错误

 之所以出现这样的错误,主要是左侧导航菜单的路径还保留原来的路径,看一下浏览器地址栏中的访问地址就清楚了。

“#”后面就是要访问的地址,还保留了原来的cmf目录,这与后来改成的“cmf5"出现了不一致

如何解决此问题,那就要分析thinkcmf5的源代码

cmf5后台的页面整体使用iframe实现,对应的控制器就是admin模块下的index控制器中的index方法,打开此控制器,一查究竟

/**
     * 后台首页
     */
    public function index()
    {
        $content = hook_one('admin_index_index_view');

        if (!empty($content)) {
            return $content;
        }

        $adminMenuModel = new AdminMenuModel();
        $menus          = cache('admin_menus_' . cmf_get_current_admin_id(), '', null, 'admin_menus');

        if (empty($menus)) {
            $menus = $adminMenuModel->menuTree();
            cache('admin_menus_' . cmf_get_current_admin_id(), $menus, null, 'admin_menus');
        }

        $this->assign("menus", $menus);


        $result = Db::name('AdminMenu')->order(["app" => "ASC", "controller" => "ASC", "action" => "ASC"])->select();
        $menusTmp = array();
        foreach ($result as $item){
            //去掉/ _ 全部小写。作为索引。
            $indexTmp = $item['app'].$item['controller'].$item['action'];
            $indexTmp = preg_replace("/[\\/|_]/","",$indexTmp);
            $indexTmp = strtolower($indexTmp);
            $menusTmp[$indexTmp] = $item;
        }
        $this->assign("menus_js_var",json_encode($menusTmp));

        //$admin = Db::name("user")->where('id', cmf_get_current_admin_id())->find();
        //$this->assign('admin', $admin);
        return $this->fetch();
    }

分析以上代码得出以下结论:后台左侧导航菜单的地址被缓存了起来,如果删除这些缓存效果如何呢?

找到cmf5的缓存文件

cache目录就是存入缓存文件的地方 ,删除cache目录下的所有文件

删除这些缓存文件后,再次点击导航菜单,发现所有菜单点击都正常了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李 书 明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值