19

在我的 WAMP 盒子上,我做了以下事情:

  1. 添加了一个名为 /application/libraries/Foo.php 的文件
  2. Foo.php 是一个类,它的名字是Foo
  3. 在 /application/config/autoload.php 中,我添加了$autoload['libraries'] = array('foo');

一切正常。当我上传到我的 LAMP 盒子时,我收到以下错误:

Unable to load the requested class: foo

/application/libraries/Foo.php 的权限为 0755。所有者与其余 CI 文件相同。从foo自动加载中取出会使问题消失。

有什么想法可能是错的吗?

4

3 回答 3

49

在 Windows 中,路径中的大小写无关紧要。在 Linux 中确实如此。

自动加载时,使用“Foo”而不是“foo”。

我相信这会成功。

我认为当您将其从自动加载中取出时它会起作用,因为 codeigniter 足够聪明,可以找出路径中的大写字母,并且类在 php 中是大小写无关的。

于 2011-11-06T11:33:47.510 回答
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');
于 2017-04-27T06:55:37.390 回答
0

如果您的应用程序使用 linux 服务器,则必须使用小写文件名和类名来避免此问题。

前任。

文件名:csvsample.php

class csvsample {

}
于 2013-10-01T03:21:43.443 回答