移动到托管服务器时调用未定义的方法 CI_Loader::template()

Call to undefined method CI_Loader::template() when move to hosting server

我正在使用 CI 3,所有功能区都在我的本地服务器上运行。

但是当我将它上传到虚拟主机服务器时,它给我这个错误:

  Call to undefined method CI_Loader::template()

我的控制器 "Main.php" 有代码:

 class Main extends CI_Controller {
    function __construct() {
        parent::__construct();                  
        /* enable session */            
        //$this->output->enable_profiler(TRUE);             
    }

    public function index() {
        if ( ! file_exists(APPPATH.'/views/admin/main.php'))
        {
            /* Whoops, we don't have a page for that! */
            show_404();
        }


        $data['menu'] = $this->load->view('templates/menu', $data, TRUE);                           
        $data['title'] = "EGB | Main"; 
        $this->load->template('admin/main', $data);

        //$this->load->view('admin/main', $data);                                   
    }
 }

并且在 "My_Loader.php" 中有:

 class MY_Loader extends CI_Loader {
    public function template($template_name, $vars = array(), $return = FALSE)
    {
         if($return):
            $content  = $this->view('templates/header', $vars, $return);
            $content .= $this->view($template_name, $vars, $return);
            $content .= $this->view('templates/footer', $vars, $return);

            return $content;
        else:
            $this->view('templates/header', $vars);
            $this->view($template_name, $vars);
            $this->view('templates/footer', $vars);
        endif;
    }
}

有什么问题吗?

提前致谢。

您的核心文件名应与 class 名称匹配。

尝试将文件名更改为

core/MY_Loader.php

而不是

core/My_Loader.php

必须是

MY_Loader.php

只有。前缀固定。