在我的WAMP框中,我执行了以下操作:
Foo
$autoload['libraries'] = array('foo');
一切正常。当我上传到我的LAMP框时,我收到以下错误:
Unable to load the requested class: foo
/application/libraries/Foo.php的权限是0755.所有者与其他CI文件相同。从自动加载中取出foo
会使问题消失。
任何想法可能出错?
答案 0 :(得分:42)
在Windows中,路径中的大写并不重要。在Linux中它确实如此。
当您自动加载时,请使用“Foo”而不是“foo”。
我相信会做到这一点。
我认为当你从自动加载中取出它时它会起作用,因为codeigniter足够聪明,可以找出路径中的大小写,并且类在php中是独立的。
答案 1 :(得分:3)
从我本地的OSx部署到我的Linux实时站点时,我遇到了类似的问题。
它在OSx上运行良好,但在Linux上我得到了:
An Error Was Encountered
Unable to load the requested class: Ckeditor
问题是Linux路径显然区分大小写,所以我不得不将库文件从“ckeditor.php”重命名为“CKEditor.php”。
我也改变了我的加载调用以匹配大写:
$this->load->library('CKEditor');
答案 2 :(得分:0)
如果您正在为您的应用程序使用Linux服务器,则必须使用小写文件名和类名来避免此问题。
实施例
文件名:csvsample.php
class csvsample {
}