【问题标题】:Class works locally, but not found when deployed类在本地工作,但在部署时找不到
【发布时间】:2020-02-09 11:40:24
【问题描述】:

我正在使用 Google Cloud Platform 和 Google App Engine 尝试将应用部署到分阶段的实时站点,但是当我使用 gcloud app deploy app.yaml --version=staging --no-promote 并查看该站点时,我收到了以下错误:

致命错误:类 'NoahK\Hansel\Service\Database\FeesService' 不是 在发现 /base/data/home/apps/s~project-hansel.421666723467090526/src/app/Provider/DatabaseServicesProvider.php 在第 64 行

第 64 行的实际代码无关紧要。它只是试图实例化一个 FeesService 对象。真正的问题是,即使它包含在文件的顶部,它也没有找到该类。该应用程序在我的本地开发服务器上运行良好。那么为什么只有在我部署它时才会发生这种情况?

【问题讨论】:

  • 也许您在本地开发服务器上使用了本地路径,而该路径不在您部署到的环境中。您可以在本地和“实时”打印出您的环境变量并比较您得到的。某处可能存在差异。

标签: php google-app-engine google-cloud-platform


【解决方案1】:

当您部署一个版本时,App Engine 会启动它以确保它是有效/健康的,即使它没有流量提升。

关于错误,有一件奇怪的事情

NoahK\Hansel\Service\Database\FeesService

反斜杠?我遇到了@niklas-rosecrantz 的评论:

  • 您确定在部署之前/部署时更新您的路径吗?

这个好像是“windows”格式路径,在linux环境下比较奇怪。

【讨论】:

    【解决方案2】:

    我的问题是 FeesService.php 文件的名称不正确。奇怪的是,这并没有在本地产生错误,但是哦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-20
      • 2021-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多