【问题标题】:Laravel 4 - class not found on live serverLaravel 4 - 在实时服务器上找不到类
【发布时间】:2013-10-16 12:33:16
【问题描述】:

我正在将我的 laravel 4 应用上传到共享主机的测试服务器。

我正在上传到一个受密码保护的目录,其中包含一个 .htaccess 文件。我的子域指向公用文件夹。

在大多数情况下,他们的应用程序按预期工作,我可以登录,查看大部分页面,但是我创建的每个类(例如帮助程序类和其他控制器)在实时服务器上都找不到,但一切正常我的本地环境。

我重做了一个 composer dump-autoload 并上传了 composer.json 文件

我不知道从哪里开始。

在我的上传中,我已将所有文件和文件夹包含到实时服务器中(现在两次)。我在其他地方读到我应该为我的类命名,但是如果主要的 laravel 控制器没有命名空间,为什么这会有所帮助?

困惑 - 感谢所有帮助

【问题讨论】:

  • 确切的错误信息是什么?这是否涉及onlyall 您自己添加的类?你在作曲家类图中使用绝对路径吗?您是否在 laravel 中设置了多个具有不同配置文件的环境?服务器运行的是哪个 PHP 版本?
  • 检查您的拼写。某些服务器区分大小写,因此无法找到类。
  • 找不到的类的名称是什么?还要仔细检查拼写是否区分大小写。通常 Windows 环境对文件命名不区分大小写,而基于 Unix 的环境则。
  • 最后,每个 JackPoint 评论都区分大小写。令人沮丧。谢谢大家

标签: php laravel laravel-4


【解决方案1】:

当您执行composer update 时,如果 Composer 发现任何新内容,它将更新文件夹中的一些文件

vendor/composer 

喜欢文件autoload_classmap.php

因此,您至少也必须重新上传此文件夹。

【讨论】:

  • 拯救了我的夜晚。
【解决方案2】:

也许它与 git 有关,您正在推送某些区分大小写的文件夹和文件的更改,但 git 正在更改这一点,因此它可以在 Mac 和 Windows 操作系统上运行,但不能在服务器上运行。

只需使用此命令:

git config core.ignorecase false

当前存储库的上述命令,您可以在 config 关键字之后添加--global

请注意,ignorecase 选项从 1.5.6 版开始可用,我假设您正在运行 2.0.x 但只是提一下!

【讨论】:

    猜你喜欢
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多